String.Format 没有分隔符的双精度数

String.Format double with no separator

我有一些双精度值,例如:

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 redundant/obsolete ?

编辑:

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

你可以使用

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

已更新
这是我要做的:

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