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
我有一些双精度值,例如:
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