C#十进制格式查询
我试图格式化一个小数,以便它将显示如下:
14.5应显示为“14.50”14.50应显示为“14.50”14.05应显示为“14.05”14.00应显示为“14”
是否可以使用单个字符串格式,即不使用条件格式?
我试过“0。##”(不满足第一个例子)和“0.00”(不满足最后一个例子)。
谢谢。
是。 您可以使用“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"
你可以使用类似的东西:FormatNumber(VariableToBeFormatted,2).Replace(“。00”,String.Empty)
如果没有某种条件格式,我认为你不能做到这一点,因为你希望格式在不同的情况下做不同的事情。
如果你满足于14.5而不是14.50,那么你可以使用0。##语法,但我想不出办法。
按照里德的回答,然后添加一个检查:
resultArray = result.Split('.'); if (resultArray.Length > 1 && resultArray[1].Length != 2) result = String.Format("{0.00}", value);
不完全优雅,但会得到你想要的结果。
这是假设在评论中说不适用于14.5的人是正确的。