C#十进制格式查询

时间:2009-12-14 17:16:31

标签: c# string format

我正在尝试格式化小数,以便它显示为:

14.5应显示为“14.50” 14.50应显示为“14.50” 14.05应显示为“14.05” 14.00应显示为“14”

是否可以使用单个字符串格式,即不使用条件格式?

我试过“0。##”(不满足第一个例子)和“0.00”(不满足最后一个例子)。

感谢。

4 个答案:

答案 0 :(得分:4)

是。您可以使用“G”格式说明符。有关示例,请参阅String.Format的文档。

例如:

decimal value = 14.05m;
string result = String.Format("{0:G}", value); // "14.05"

value = 14m;
result = String.Format("{0:G}", value); // "14"

答案 1 :(得分:1)

您可以使用以下内容: FormatNumber(VariableToBeFormatted,2).Replace(“。00”,String.Empty)

答案 2 :(得分:0)

如果没有某种条件格式,我不认为你能做到这一点,因为你希望格式在不同的情况下做不同的事情。

如果你满足于14.5而不是14.50,那么你可以使用0。##语法,但我想不出办法。

答案 3 :(得分:0)

按照里德的回答并在此之后添加一张支票:

resultArray = result.Split('.');

if (resultArray.Length > 1 && resultArray[1].Length != 2)
    result = String.Format("{0.00}", value);

不完全优雅,但会得到你想要的结果。

这是假设在评论中说不适用于14.5的人是正确的。

相关问题