String.Format double没有分隔符

时间:2016-05-23 14:50:43

标签: c# .net string.format

我有一些双重值,例如:

24.1
0.5
9.0

我想格式化这些值,以便获得点前的数字和点后的三位数。此数字不应以点分隔 所以它最终会像这样:

24100
0500
9000

我目前的解决方案,我不喜欢这样:

public override String ToString()
{
    String formatparameter  = "{0:0.000}";
    String stringFix = String.Format(formatparameter, m_Fix);
    stringFix = stringFix.Replace(".", "");
    stringFix =stringFix.Replace(",", "");
    return stringFix
}

是否有String.Format" formatParameter"这使得string.Replace冗余/过时了?

修改

为了澄清我正在寻找格式参数。到目前为止提供的解决方案在输出方面都很出色,但我希望找到一个参数。

2 个答案:

答案 0 :(得分:4)

<强>更新
这就是我要做的事情:

public static String ToString(double d)
{
    return (d * 1000.0).ToString("0000");
}

Console.WriteLine(ToString(24.1));
Console.WriteLine(ToString(0.5));
Console.WriteLine(ToString(9.0));

输出:

24100
0500
9000

答案 1 :(得分:3)

您可以使用

return string.Format("{0}{1:000}", (int)m_Fix, (m_Fix*1000)%1000);

或使用C#6

return $"{(int)m_Fix}{(m_Fix*1000)%1000:000}"

使用您的三个值进行测试并获得此输出:

24100
0500
9000