gpt4 book ai didi

c# - 没有小数位的 string.Format 会产生意外的舍入

转载 作者:行者123 更新时间:2023-12-03 22:57:34 28 4
gpt4 key购买 nike

我需要更新一些现有代码,以便(有条件地)显示没有任何小数位的数字。

以下两行的使用取决于是否需要“£”符号。

currency = string.Format(CultureInfo.CurrentCulture, "{0:£#,0.00}", data);

或者

currency = string.Format(CultureInfo.CurrentCulture, "{0:#,0.00}", data);

我尝试更改此代码以使用 {0:£#,0},虽然小数位被删除,但“数据”值 23699.99 被四舍五入为 23700,而不是 23699。

我尝试了 {0:£#,0} 来了解发生了什么,23699.99 再次四舍五入为 23700。

谁能解释一下为什么会发生这种情况吗?

提前谢谢您。

最佳答案

当您设置数字格式时,它始终会按照您选择的精度四舍五入到最接近的数字。例如,如果您使用一位小数进行格式化,则 0.86 将四舍五入为 0.9,而 0.96 将四舍五入为 1.0。

同样,如果打印时不带小数位,23699.99 将四舍五入为 23700,因为 23700 是最接近 23699.99 的不带小数位的数字。

如果您想向下舍入,请使用 Math.Floor。

关于c# - 没有小数位的 string.Format 会产生意外的舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5223016/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com