问题标签 [bankers-rounding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .NET 货币格式化程序:我可以指定使用银行家的四舍五入吗?
有谁知道我如何获得格式字符串以使用银行家四舍五入?我一直在使用“{0:c}”,但这与银行家四舍五入的方式不同。该Math.Round()
方法对银行家进行四舍五入。我只需要能够使用格式字符串复制它的舍入方式。
注意:最初的问题相当具有误导性,提到正则表达式的答案就来源于此。
c# - 如何在 C# 中将数字四舍五入到小数点后两位?
我想使用该Math.Round
功能来做到这一点
c# - 有没有办法在 .NET 中进行“正确”算术舍入?/ C#
我正在尝试将一个数字四舍五入到小数点后的第一位,并且考虑到不同的 MidpointRounding 选项,这似乎效果很好。但是,当该数字具有随后的小数位时,就会出现一个问题,这会在算术上影响四舍五入。
一个例子:
,它0.1
的工作原理:0.11..0.19
0.141..0.44
但0.141..0.149
它总是返回0.1
,虽然0.146..0.149
应该四舍五入0.2
:
我试图想出一个解决这个问题的函数,它在这种情况下效果很好,但是如果你尝试将 ie 四舍五入0.144449
到它的第一个十进制数字(应该是0.2
,但是结果0.1
) ,它当然会失败。也不能与 Math.Round() 一起使用。)
我假设一个解决方案是枚举所有数字,找到大于 4 的第一个值,然后向上取整,或者向下取整。问题 1:这似乎很愚蠢,问题 2:我不知道如何在没有大量乘法和减法的情况下枚举数字。
长话短说:最好的方法是什么?
c# - C# 银行家的舍入错误
..返回 18.57。
对于我尝试过的所有其他数字,银行家的四舍五入按预期工作,例如 Math.Round(2.565,2) 返回 2.56。
任何线索为什么以及何时发生?是错误还是我错过了有关银行家四舍五入的内容?
谢谢..
rounding - 舍入标准 - 财务计算
我很好奇在计算财务数据时是否存在任何“舍入”标准。我最初的想法是仅在将数据呈现给用户(表示层)时才进行舍入。
如果“四舍五入”数据随后用于进一步计算,应该使用“四舍五入”数字还是“原始”数字?有人有建议吗?
请注意,我知道不同的舍入方法,即银行家舍入等。
c# - c#中的round函数
decimals 参数指定返回值的小数位数,范围为 0 到 28。如果 decimals 为零,则返回一个整数。
如果 d 中小数点右边第一个数字的值为 5,则小数位为奇数则四舍五入,偶数则保持不变。如果 d 的精度小于小数,则 d 原样返回。
为什么 3.45 返回 3.4 ..我无法理解这个输出。谁能帮忙
teradata - Teradata - 通过更改设置删除银行家四舍五入
我需要模仿excel中的计算。我们必须得到准确的答案。计算在几个点上四舍五入。Excel 向上舍入 X.5。看起来 Teradata 正在使用银行家的四舍五入(将 X.5 舍入到偶数 #)。
我无法更改公司数据库中的设置。有什么我可以使用的语法吗?
我有一个案例声明的临时修复,但我希望有更好的解决方案。
谢谢!
c# - Rounding Issue using Math.Round
The above code results as
43.523 --> 43.52
12.65 --> 12.65
43.565 --> 43.56
I need 43.565 --> 43.57 and not 43.565 --> 43.56. But i still need the other 43.523 --> 43.52 and 12.65 --> 12.65 rounded as is.
python - Python 的 ROUND_HALF_EVEN 应该如何处理小于 1 的小数?
似乎在我能找到的每个定义中都round half to even
包含nearest even integer
(例如,Python 的十进制文档),好像只有整数被四舍五入。但是,如果我对小于 1 的小数进行四舍五入,它似乎遵循相同的原则,只是将角色分配给integer
我要四舍五入的小数位。例子:
在此示例中,小数点后第三位的值似乎扮演整数的角色(向下舍入0
和向上舍入2
)。这是处理小于零的数字的ROUND_HALF_EVEN
指定方式(以及Python应该如何工作),如果是这样,我只是误解了这种情况下“整数”的含义吗?或者,还有更多的故事,也许这只是一个巧合?
c# - 指定小数位数时,Math.Round 与 MidpointRounding.ToEven 的行为是否正确?
我正在尝试使用Math.Round但是我得到的结果不是我所期望的。我发现即使下一个数字是 5,它也只会四舍五入,之后不能有任何其他数字。
Decimal.Round的行为也相同。
如MidpointRounding中所述,舍入不应该只考虑您要舍入到的小数位之后的数字吗?
舍入运算采用隐含或指定精度的原始数字;检查下一个数字,即该精度加一;并返回与原始数字具有相同精度的最接近的数字。