我有一个要显示的价格字段,有时可以是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"
一个优雅的方法是:
var my = DoFormat(123.0);
随着DoFormat像:
DoFormat
public static string DoFormat( double myNumber ) { var s = string.Format("{0:0.00}", myNumber); if ( s.EndsWith("00") ) { return ((int)myNumber).ToString(); } else { return s; } }
不优雅,但在某些项目中以类似的情况为我工作。