C#:我有一个十进制数字,我想用逗号分隔千位数字,但不要四舍五入。作为堆栈溢出的答案,我使用了.ToString("#,##0")
,但是它四舍五入了数字。四舍五入对我来说是不可接受的!
在我的模型中,我有:
public decimal? ADecimalNumber { get; set; }
在控制器中,我有:
ViewBag.ADecimalNumber = result?.ADecimalNumber;
鉴于我有:
@(ViewBag.ADecimalNumber != null ? ViewBag.ADecimalNumber.ToString("#,##0") : '-')
快速查看模式下的ViewBag值为11106.8314M
,ViewBag.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/