【发布时间】:2011-10-20 13:10:16
【问题描述】:
我有一个要显示的价格字段,有时可以是 100 或 100.99 或 100.9,我想要的是仅在为该价格输入小数时以 2 位小数显示价格,例如,如果它是 100,那么它应该只显示 100 而不是 100.00,如果价格是 100.2,它应该显示 100.20,同样 100.22 应该是相同的。 我用谷歌搜索并遇到了一些示例,但它们与我想要的不完全匹配:
// just two decimal places
String.Format("{0:0.00}", 123.4567); // "123.46"
String.Format("{0:0.00}", 123.4); // "123.40"
String.Format("{0:0.00}", 123.0); // "123.00"
【问题讨论】:
-
RE:“我想要的是仅在为该价格输入小数时以 2 位小数显示价格”——因此,如果用户键入“100.00”,您希望显示“100.00” ,但如果他们键入“100”,您只想显示“100”? -- 数字类型只跟踪数字的值 -- 而不是用户输入了哪些无关紧要的数字,哪些没有 -- 为此您需要使用字符串。
-
@BinaryWorrier 我认为这个问题可能是重复的,但它有更好和更完整的答案。 IMO 应将另一个标记为该副本的副本。
-
只需添加 .Replace(".00","")
-
您只需要
value.ToString("0.##");
标签: c# regex string-formatting number-formatting