我有一些双重值,例如:
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冗余/过时了?
修改
为了澄清我正在寻找格式参数。到目前为止提供的解决方案在输出方面都很出色,但我希望找到一个参数。
答案 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