Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >怎样才能向上取整而不是向下取整?

怎样才能向上取整而不是向下取整?
EN

Stack Overflow用户
提问于 2010-11-12 08:57:57
回答 4查看 9.4K关注 0票数 11

我正在执行一些计算并将结果插入到数据库中。

我的问题是,我得到的答案似乎是向下取整而不是向上取整。这可能看起来并不重要,但在大量销售的过程中,美分开始增加!

代码语言:javascript
运行
AI代码解释
复制
Decimal pubCut = rrp * (percentageCutD / 100);
Decimal retCut = rrp * retailerCut;
Decimal edcut = rrp * edpercentage;

老实说,我对数字一窍不通,整个数学函数都是我在大学里尽量避免的。谁能告诉我怎样才能使这些数字向上取整而不是向下取整?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-12 09:01:47

使用Math.Ceiling()方法。

代码语言:javascript
运行
AI代码解释
复制
double[] values = {7.03, 7.64, 0.12, -0.12, -7.1, -7.6};
Console.WriteLine("  Value          Ceiling          Floor\n");
foreach (double value in values)
   Console.WriteLine("{0,7} {1,16} {2,14}", 
                     value, Math.Ceiling(value), Math.Floor(value));
// The example displays the following output to the console:
//         Value          Ceiling          Floor
//       
//          7.03                8              7
//          7.64                8              7
//          0.12                1              0
//         -0.12                0             -1
//          -7.1               -7             -8
//          -7.6               -7             -8
票数 15
EN

Stack Overflow用户

发布于 2010-11-12 09:01:21

你的问题是

代码语言:javascript
运行
AI代码解释
复制
(percentageCutD / 100)

因为100是一个整数,所以它将执行整数除法,这样150/100就变成了1。你可以通过确定100是一个小数来解决这个问题,因为你想要一个小数作为结果。将代码更改为。

代码语言:javascript
运行
AI代码解释
复制
(percentageCutD / 100D)

但是,如果您总是希望将值四舍五入,甚至像1.1那样向上舍入到2,那么您将不得不使用Math.Ceiling来实现。如果您出于某种原因想要避免使用Math类(我不明白您为什么要这样做),您可以在结果中添加1并将其转换为int,从而有效地向上舍入到最接近的整数。

票数 5
EN

Stack Overflow用户

发布于 2010-11-12 09:36:28

.NET的Math.Round函数使用了一些通常被称为银行家舍入的东西,其工作原理是将.5舍入到最接近的偶数,即22.5 = 22和23.5 = 24。这在舍入时提供了更均匀的分布。

还值得注意的是,SQL服务器不使用银行家舍入

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4162957

复制
相关文章
循环队列出队-数组循环队列
  我们知道队列这种数据结构的物理实现方式主要还是两种,一种是链队列(自定义节点类),另一种则是使用数组实现,两者各有优势。此处我们将要介绍的循环队列其实是队列的一种具体实现,由于一般的数组实现的队列结构在频繁出队的情况下,会产生假溢出现象循环队列出队,导致数组使用效率降低,所以引入循环队列这种结构。本文将从以下两个大角度介绍循环队列这种数据结构:
宜轩
2022/12/29
1.1K0
深入理解循环队列----循环数组实现ArrayDeque
     我们知道队列这种数据结构的物理实现方式主要还是两种,一种是链队列(自定义节点类),另一种则是使用数组实现,两者各有优势。此处我们将要介绍的循环队列其实是队列的一种具体实现,由于一般的数组实现
Single
2018/01/04
2.5K0
深入理解循环队列----循环数组实现ArrayDeque
使用数组模拟队列、循环队列和栈
在一些考试题中以及笔试面试的过程中,在需要使用stack和queue的时候,可能被要求不能使用STL中相关的库函数,也就意味着我们需要使用纯C进行编程。但是如果在考试中或者笔试面试中,为了要使用栈和队列,而去写一个完整的数据结构是比较大费周章,况且在时间上也不一定允许,因此,使用数组来模拟栈和队列的实现是一种明智的选择,原因有两个: 一、使用数组模拟队列和栈可以简化编程的复杂度,节省时间,比如在dfs()和bfs()可以花更多的时间来思考这两个逻辑的实现。 二、使用数组模拟的栈和队列在效率上比标准库的容器类高很多,可以使得程序执行的速度更快。
lexingsen
2022/02/24
7680
循环队列的实现
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115385.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/10
3110
循环队列的实现
Java 循环队列的实现
  队列(Queue)是限定只能在一端插入、另一端删除的线性表。允许删除的一端叫做队头(front),允许插入的一端叫做队尾(rear),没有元素的队列称为“空队列”。
Rekent
2018/09/04
1.5K0
Java 循环队列的实现
循环队列出队-循环队列的c语言实现
  队列就是一个能够实现“先进先出”的存储结构,队列分为链式队列和静态队列。静态队列一般用数组来实现,但此时的队列必须是循环队列,否则会造成巨大的内存浪费;链式队列是用链表来实现队列的。说白了循环队列就是一个数组循环队列出队,我们把这个数组当成首尾相连来使用(写到数组的末尾后从头开始写)。
宜轩
2022/12/29
7260
队列的一种实现:循环队列
队列的一种实现,循环队列,通过使用固定长度数组及首尾指针实现队列的入队、出队等: class CircularQueue<T> { private Object[] data; //数据存储数组 private int head; //队列头指针 private int tail; //队列尾指针 private int size; //队列长度 /** * 初始化 * * @param k */ publi
WindWant
2020/09/10
4940
循环队列出队-队列,顺序队列与循环队列
  队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
宜轩
2022/12/29
7830
java循环队列实现相关方法
循环队列相关背景### 什么是队列就不解释了 头尾相接的顺序存储结构称为循环队列(circular queue)。 循环队列中需要注意的几个重要问题: ①队空的判定条件,队空的条件是front=rear; ②队满的判定条件,(rear+1)%QueueSize=front。QueueSize为队列初始空间大小。 import com.sun.corba.se.impl.orbutil.graph.Node; import com.sun.corba.se.spi.presentation.rmi.IDLN
张俊怡
2018/04/24
6500
C语言实现循环队列
2️⃣:入队a1、a2、a3,q -> front = 0, q -> rear = 3
忆想不到的晖
2020/07/15
3K0
C语言实现循环队列
循环队列出队-栈和队列的实现
  此外,当返回栈顶元素时循环队列出队,最后插入的元素会被返回,因此,栈的特点是“后进先出”
宜轩
2022/12/29
3310
标志位法实现循环队列
为了解决顺序队列假溢出的问题,提出了循环队列。使得内存的利用率得到了很大的提升。但是在判断循环队列空和满这两种状态任然存在问题,因为对于一个循环队列,不做任何判空和判满的机制。判空和判满的条件都是:q->rear == q->front。带来的问题就是当出现上述条件时不能区分循环队列到底是空还是满,因此为了解决上述问题。人们提出以下两种方案来解决: (1)牺牲一个位置用作判断的条件
lexingsen
2022/02/24
6530
数组实现栈和队列
我们需要设置一个数组当作栈,一个index当作栈指针 当我们往数组中添加数据时候,栈指针+1 当我们栈指针指向size时候,再要求加数据要报错 当我们往数组中减数据时候,栈指针-1 当我们栈指针指向0时候,再要求弹出数据要报错
名字是乱打的
2022/05/13
2110
数组实现栈和队列
循环队列
(1)设一个容量为capacity=8,size=5(a,b,c,d,e)的数组,左侧为队首、右侧为队尾。
wfaceboss
2019/04/08
4970
循环队列
循环队列
当删除队首元素时,head加1,上图如果把C也删掉,那么就 head = tail 了 tail 始终指向队列元素的下一个位置 对应的操作: 队空:head=tail 求队长:tail - head 入队:新元素按 tail 指示位置加入,再将队尾指针加1 ,即 tail = tail + 1 出队:将head指示的元素取出,再将队头指针加1,即head = head + 1
SerMs
2022/03/30
3670
循环队列
循环队列
法1:用到的是我之前写的循环队列文章里面的方法 循环队列详解 #include<iostream> using namespace std; class MyCircularQueue { private: int queue[1000]; int head; int tail; int size; public: MyCircularQueue(int k) { size = k+1; head =
大忽悠爱学习
2022/05/05
2610
循环队列
循环队列
#include <stdio.h> #include <stdlib.h> #define ERROR 0 #define OK 1 typedef struct Queue { int *data; int head, tail, length, count; }Queue; void init(Queue *q, int length) { q->data = (int *)malloc(sizeof(int) * length); q->length = len
小飞侠xp
2021/05/14
2400
循环队列
循环队列类似栈,但是有两个口,一个专门用来入队,一个专门用来出队。由于入队出队不在一个端口,因此如果不适用循环队列,随着队列的使用,存储空间马上就被耗光了。在循环队列中,一个主要的知识点,就是如何判断队列为空,或者队列满。 这里主要有两个方法: 1 设置一个标记位,初始时,队列为空,我们设置flag=0;随着数据的使用,如果队满,设置flag=1; 2 使用一个空的数据位,这样rear指针永远也不能追上front指针。当front==rear时,队列即为空;当(rear-front)%SIZE==SIZE时
用户1154259
2018/01/18
5290
循环队列
顺序循环队列(C语言实现)
头文件: Queue.h typedef struct { DataType queue[MaxQueueSize]; int rear; //队尾指针 int front; //队头指针 int count; //计数器 }SeqQueue; //初始化 void Q
别团等shy哥发育
2023/02/27
7220
顺序循环队列(C语言实现)
基于数组实现队列 根据队列特性实现击鼓传花
实现思路 队列的核心思想是先进先出(FIFO),队列支持从前端(front)移除数据,从后端(rear)插入数据 实现一个队列需要具备以下方法 将元素加入到队列 删除队列前端元素 查看队列前端元素 查看队列是否为空 查看队列大小 查看队列内所有元素 清空队列 实现代码 /** * 基于数组实现队列 */ function Queue() { this.items = [] //将元素加入到队列 Queue.prototype.enqueue = function(elem) { t
peng_tianyu
2022/12/15
3960

相似问题

Rails link_to_modal,需要添加滚动条

23

rails不工作

10

Rails Capybara不工作

21

Rails排序不工作

30

Rails确认不工作

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档