问题标签 [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.

0 投票
5 回答
2393 浏览

c# - .NET 货币格式化程序:我可以指定使用银行家的四舍五入吗?

有谁知道我如何获得格式字符串以使用银行家四舍五入?我一直在使用“{0:c}”,但这与银行家四舍五入的方式不同。该Math.Round()方法对银行家进行四舍五入。我只需要能够使用格式字符串复制它的舍入方式。


注意:最初的问题相当具有误导性,提到正则表达式的答案就来源于此。

0 投票
15 回答
715076 浏览

c# - 如何在 C# 中将数字四舍五入到小数点后两位?

我想使用该Math.Round功能来做到这一点

0 投票
4 回答
3186 浏览

c# - 有没有办法在 .NET 中进行“正确”算术舍入?/ C#

我正在尝试将一个数字四舍五入到小数点后的第一位,并且考虑到不同的 MidpointRounding 选项,这似乎效果很好。但是,当该数字具有随后的小数位时,就会出现一个问题,这会在算术上影响四舍五入。

一个例子:

,它0.1的工作原理:0.11..0.190.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:我不知道如何在没有大量乘法和减法的情况下枚举数字。

长话短说:最好的方法是什么?

0 投票
4 回答
4609 浏览

c# - C# 银行家的舍入错误

..返回 18.57。
对于我尝试过的所有其他数字,银行家的四舍五入按预期工作,例如 Math.Round(2.565,2) 返回 2.56。

任何线索为什么以及何时发生?是错误还是我错过了有关银行家四舍五入的内容?

谢谢..

0 投票
5 回答
31693 浏览

rounding - 舍入标准 - 财务计算

我很好奇在计算财务数据时是否存在任何“舍入”标准。我最初的想法是仅在将数据呈现给用户(表示层)时才进行舍入。

如果“四舍五入”数据随后用于进一步计算,应该使用“四舍五入”数字还是“原始”数字?有人有建议吗?

请注意,我知道不同的舍入方法,即银行家舍入等。

0 投票
3 回答
979 浏览

c# - c#中的round函数

decimals 参数指定返回值的小数位数,范围为 0 到 28。如果 decimals 为零,则返回一个整数。

如果 d 中小数点右边第一个数字的值为 5,则小数位为奇数则四舍五入,偶数则保持不变。如果 d 的精度小于小数,则 d 原样返回。

为什么 3.45 返回 3.4 ..我无法理解这个输出。谁能帮忙

0 投票
1 回答
770 浏览

teradata - Teradata - 通过更改设置删除银行家四舍五入

我需要模仿excel中的计算。我们必须得到准确的答案。计算在几个点上四舍五入。Excel 向上舍入 X.5。看起来 Teradata 正在使用银行家的四舍五入(将 X.5 舍入到偶数 #)。

我无法更改公司数据库中的设置。有什么我可以使用的语法吗?

我有一个案例声明的临时修复,但我希望有更好的解决方案。

谢谢!

0 投票
4 回答
2917 浏览

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.

0 投票
1 回答
2504 浏览

python - Python 的 ROUND_HALF_EVEN 应该如何处理小于 1 的小数?

似乎在我能找到的每个定义中都round half to even包含nearest even integer(例如,Python 的十进制文档),好像只有整数被四舍五入。但是,如果我对小于 1 的小数进行四舍五入,它似乎遵循相同的原则,只是将角色分配给integer我要四舍五入的小数位。例子:

在此示例中,小数点后第三位的值似乎扮演整数的角色(向下舍入0和向上舍入2)。这是处理小于零的数字ROUND_HALF_EVEN指定方式(以及Python应该如何工作),如果是这样,我只是误解了这种情况下“整数”的含义吗?或者,还有更多的故事,也许这只是一个巧合?

0 投票
1 回答
389 浏览

c# - 指定小数位数时,Math.Round 与 MidpointRounding.ToEven 的行为是否正确?

我正在尝试使用Math.Round但是我得到的结果不是我所期望的。我发现即使下一个数字是 5,它也只会四舍五入,之后不能有任何其他数字。

Decimal.Round的行为也相同。

如MidpointRounding中所述,舍入不应该只考虑您要舍入到的小数位之后的数字吗?

舍入运算采用隐含或指定精度的原始数字;检查下一个数字,即该精度加一;并返回与原始数字具有相同精度的最接近的数字。