Tag: 四舍五入

舍入整数除法(而不是截断)

我很想知道如何将一个数字舍去到最接近的整数。 例如,如果我有: int a = 59 / 4; 以浮点计算得到14.75; 我怎么能把这个数字作为15存储在“a”中?

如何将浮点数整数转换为整数?

比方说,我有一个浮点数的数组,在sorting(我们说升序),其总和已知是一个整数N 我想把这些数字“整数”为整数,同时保持它们的总数不变。 换句话说,我正在寻找一种将浮点数字(称为fn )转换为整数数组的algorithm(调用它),以便: 两个arrays具有相同的长度 整数数组的总和是N 每个浮点数fn[i]与其fn[i]相应的整数之间的差值小于1(如果您真的必须等于1) ( fn[i] <= fn[i+1] ),整数也将按sorting顺序排列( in[i] <= in[i+1] ) 考虑到满足这四个条件,使得舍入方差最小化的algorithm( sum((in[i] – fn[i])^2) )是优选的,但是并不是什么大不了的。 例子: [0.02,0.03,0.05,0.06,0.07,0.08,0.09,0.1,0.11,0.12,0.13,0.14] => [0,0,0,0,0,0,0,0,0,0,1] [0.1,0.3,0.4,0.4,0.8] => [0,0,0,1,1] [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1] => [0,0,0,0,0,0,0,0,0,1] [0.4,0.4,0.4,0.4,9.2,9.2] => [0,0,1,1,9,9]是优选的 => [0,0,0,0,10,10]是可接受的 [0.5,0.5,11] => [0,1,11]很好 => [0,0,12]在技术上是不允许的,但我会把它捏在一起 回答评论中提出的一些优秀问题: 在这两个数组中都允许重复元素(尽pipe我也有兴趣知道仅在浮点数组不包含重复的情况下才有效) 没有一个正确的答案 – 对于给定的浮点数input数组,通常有多个满足四个条件的int数组。 我想到的应用程序 – 这有点奇怪 – 在MarioKart游戏中向顶尖的玩家分发点数;-)从来没有亲自玩过游戏,但在看别人的时候,我注意到有24点分布在前四名的终结者,我想知道如何根据完成时间来分配积分(所以如果有人在积分榜上领先,他们将得到更多的积分)。 游戏跟踪总数为整数,因此需要这种舍入。 为了好奇,这里是我用来确定哪些algorithm工作的testing脚本 。

四舍五入 – “100”有什么特别之处?

Haskell有没有人对这个奇怪的舍入有一个解释(GHCi,版本7.2.1)。 一切似乎很好,除非我乘以100。 *Main> 1.1 1.1 *Main> 1.1 *10 11.0 *Main> 1.1 *100 110.00000000000001 *Main> 1.1 *1000 1100.0 *Main> 1.1 *10000 11000.0 编辑:令我感到困惑的是舍入误差只有在乘以100时才显示。 编辑(2):我收到的意见让我意识到,这与haskell完全无关,但浮点数的一般问题。 许多问题已经被问到(和回答)关于浮点数奇怪的问题,其中不确定的问题典型地将浮点数与实数混淆。 Perl,Python,JavaScript和C都报告1.1 * 100.0 = 110.00000000000001 。 这是C做的 double 10.0 * 1.1 = 11.000000000000000000000000 double 100.0 * 1.1 = 110.000000000000014210854715 double 110.0 = 110.000000000000000000000000 double 1000.0 * 1.1 = 1100.000000000000000000000000 “为什么这只发生在乘以100”(即使有一个精确的表示110.0)仍然没有答案,但我想没有一个简单的答案,除了完全通过浮点乘法(通过感谢Dax Fohl强调10是没有什么特别的二进制)

围绕一个双重的X有效数字

如果我有一个double(234.004223)等,我想在C#中将其舍入为x个有效数字。 到目前为止,我只能find方法来四舍五入到小数点后的位置,但是这只是在数字中有0的情况下删除精度。 例如,小数点后一位0.086变为0.1,但我希望保持在0.08。

如何将数字凑到最接近的10?

我们怎样才能在一个数字四舍五入到最接近的10? 假设我有23 ,我会用什么代码将它舍弃到30 ?

内置.Netalgorithm将值舍入到最近的10个区间

如何在C#中的任何值10间隔? 例如,如果我有11,我希望它返回10,如果我有136,那么我想它返回140。 我可以很容易地手工完成 return ((int)(number / 10)) * 10; 但是我正在寻找一个内置的algorithm来做这个工作,像Math.Round()。 我不想亲手做的原因是,我不想在我的项目中写出相同或相似的代码,即使是像上面这样简单的东西。

在Objective-C中舍入数字

我正在尝试做一些数字四舍五入和转换为一个string来增强Objective-C程序的输出。 我有一个浮点值,我想四舍五入到最接近的.5,然后用它来设置标签上的文本。 例如: 1.4将是一串:1.5 1.2将是一串:1 0.2将是一串:0 我花了一段时间在Google上寻找答案,但作为Objective-C的noob,我不知道要search什么! 所以,我真的很欣赏一个正确的方向指针! 谢谢,Ash

如何在Javascript中收集数字?

我想用Javascript来收集一个数字。 由于数字是货币,所以我希望它能像这些例子(小数点后两位)凑齐: 192.168 => 192.20 192.11 => 192.20 192.21 => 192.30 192.26 => 192.30 192.20 => 192.20 如何实现这个使用Javascript? 内置的Javascript函数将基于标准逻辑(less于5个以上)整理数字。

我应该使用NSDecimalNumber来处理钱吗?

当我开始编写我的第一个应用程序时,我使用NSNumber来获得金钱价值而不用两次思考。 然后我想,也许ctypes足以处理我的价值观。 然而,在iPhone SDK论坛中,我build议使用NSDecimalNumber,因为它具有出色的舍入function。 我不是一个气质的math家,我认为尾数/指数范式可能是矫枉过正的; 还是googlin“,我意识到大多数关于cocoa货币/货币的讨论都被称为NSDecimalNumber。 请注意,我正在使用的应用程序将会被国际化,因此以美分计数的选项并不是真正可行的,因为货币结构在很大程度上取决于所使用的语言环境。 我90%确定我需要去NSDecimalNumber,但是因为我没有在网上find明确的答案(如:“如果你处理钱,使用NSDecimalNumber!”),我想我会问在这里。 也许答案对大多数人来说是显而易见的,但是在开始对应用程序进行大规模重构之前,我想确定一下。 说服我 :)

如何在Python中将数字舍入为有意义的数字

我需要围绕一个浮点数显示在用户界面。 例如,一个有意义的数字: 1234 – > 1000 0.12 – > 0.1 0.012 – > 0.01 0.062 – > 0.06 6253 – > 6000 1999年 – > 2000年 有没有一种很好的方式来使用Python库来做到这一点,还是我必须自己写?