我有一个method
returns
一个string
。
如果情况1 - return doubleVariable.ToString("0.55", {en-US})
返回0.55
// **I need 0.55**
如果情况2 - return doubleVariable.ToString("0.00", {en-US})
返回empty string
// **I need 0.00**
任何提示如何摆脱这个?
编辑:
方式
private string GetContent(
NumericUserVariable templateNumericUserVariable,
double doubleValue,
CultureInfo cultureInfo)
{
string placeholder = "#";
if (!templateNumericUserVariable.IsDecimal)
{
return doubleValue.ToString();
}
string decimalPlaces = placeholder;
if (templateNumericUserVariable.DecimalPlace > 0)
{
decimalPlaces = decimalPlaces.PadRight(
// templateNumericUserVariable.DecimalPlace - 1,
templateNumericUserVariable.DecimalPlace, '#');
return doubleValue.ToString(placeholder + "." + decimalPlaces, cultureInfo);
}
return doubleValue.ToString(placeholder, cultureInfo);
}
答案 0 :(得分:3)
要达到您的目标,您需要使用#
0
字符
0表示,如果数字为零,则将数字放在此位置
doubleVariable.ToString("0.00", cultureInfo);
您可以阅读Custom Numeric Format here
“0” - 零占位符用相应的替换零 数字如果存在;否则,结果字符串中会出现零。
而不是#
字符,您可以阅读
“#” - 数字占位符用“。”替换“#”符号 相应的数字(如果有的话);否则,没有数字出现在 结果字符串。
答案 1 :(得分:1)
好的,所以你真的抱怨(0.0).ToString("#.##")
返回""
,对吧?
请尝试(0.0).ToString("0.00")
。
此处(0.0)
是doubleVariable
的价值。
但也要考虑:
doubleValue.ToString("F" + templateNumericUserVariable.DecimalPlace, cultureInfo)
例如(0.0).ToString("F2")
为"0.00"
提供了两个(固定的)小数。