我正在尝试格式化小数,以便它显示为:
14.5应显示为“14.50” 14.50应显示为“14.50” 14.05应显示为“14.05” 14.00应显示为“14”
是否可以使用单个字符串格式,即不使用条件格式?
我试过“0。##”(不满足第一个例子)和“0.00”(不满足最后一个例子)。
感谢。
答案 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的人是正确的。