是否有一种方法(在.NET中)在使用 .ToString("...")
时从数字中删除尾随零,但如果数字不是整数则显示为2位小数:
-
(12345.00).ToString(...)应显示为12345
-
(12345.10).ToString(...)应显示为12345.10
-
(12345.12).ToString(...)应显示为12345.12
是否有1个数字格式字符串可以在所有这些场景中使用?
.ToString("#.##")
几乎可以工作,但没有显示方案2的尾随0 ...
此外,其他文化不是问题,我只想要小数点(不是逗号等)
8 回答
沿着这些方向的东西?
编辑
虽然这个代码中有一个小错误:) 1.001将打印为“1.00”...这可能不是你想要的,如果你需要打印1.001为“1”你需要更改if( . ..)测试检查有限公差 . 由于这个问题更多的是关于格式化,我将保持答案不变,但在 生产环境 代码中你可能想要考虑这种问题 .
脏的方式:
不是一种格式,但它适合一行:
我不能说我遇到了一个可以做到这一点的面具 . 我会用
我猜你可以用你自己的方法来产生那个显示,因为它是否是一个整数的条件 .
如果要使用它来显示货币,可以使用以下内容
您可以编写这样的扩展方法来为您进行格式化:
如果您希望在ASP MVC Razor中执行此操作,那么您可以试试这个
这将表现如下:
值:2.5 - >显示:2.50
值:5 - >显示:5
值:2.45 - >显示:2.45