C#:我有一个十进制数字,我想用逗号分隔千位数字,但不要四舍五入。作为堆栈溢出的答案,我使用了.ToString("#,##0"),但是它四舍五入了数字。四舍五入对我来说是不可接受的!

在我的模型中,我有:
 public decimal? ADecimalNumber { get; set; }
在控制器中,我有:
 ViewBag.ADecimalNumber = result?.ADecimalNumber;
鉴于我有:
 @(ViewBag.ADecimalNumber != null ? ViewBag.ADecimalNumber.ToString("#,##0") : '-')

快速查看模式下的ViewBag值为11106.8314MViewBag.ADecimalNumber.ToString("#,##0")结果为"11,107"

最佳答案

舍入是#自定义数字格式器行为的一部分。如果不想舍入,请使用Math.Truncate()截断句点后的数字:

Math.Truncate(ViewBag.ADecimalNumber).ToString("#,##0")


如果要打印n个小数位,则将数字乘以10的n次幂,然后截断然后除以相同的幂,例如:Math.Truncate(123456.78M * 10M)/10M将给出123456.7,可以使用格式字符串#,###.#打印

关于c# - 为什么ADecimalNumber.ToString(“#,## 0”)四舍五入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44646129/

10-10 14:38