双重.ToString(0.55,{en-US})返回.55-C#
本文关键字:en-US 返回 55-C# ToString 双重 | 更新日期: 2023-09-27 18:00:52
我有一个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
更改#
字符
0意味着,如果数字是零值,也可以在这个位置放置一个数字
doubleVariable.ToString("0.00", cultureInfo);
你可以在这里阅读关于自定义数字格式
"0"-零占位符将零替换为相应的数字(如果存在(;否则,结果字符串中将显示零。
对于#
字符,您可以读取
"#"-数字占位符将"#"符号替换为对应的数字(如果存在(;否则,中不会出现数字结果字符串。
好吧,所以你真的在抱怨(0.0).ToString("#.##")
返回""
,对吧?
请改用(0.0).ToString("0.00")
。
这里(0.0)
是您的doubleVariable
的值。
但也要考虑:
doubleValue.ToString("F" + templateNumericUserVariable.DecimalPlace, cultureInfo)
例如CCD_ 18给出具有两个(固定(小数的CCD_。