一尘不染

使用字符串格式最多显示两位小数或简单整数

c#

我有一个要显示的价格字段,有时可以是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"

阅读 410

收藏
2020-05-19

共1个答案

一尘不染

一个优雅的方法是:

var my = DoFormat(123.0);

随着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;
    }
}

不优雅,但在某些项目中以类似的情况为我工作。

2020-05-19