double.ToString(0.55,{en US})返回.55-C#
我有一个double.ToString(0.55,{en US})返回.55-C#,c#,string,double,cultureinfo,string-conversion,C#,String,Double,Cultureinfo,String Conversion,我有一个方法,它返回一个字符串 在案例1中-返回doubleVariable.ToString(“0.55”{en US})返回0.55/**我需要0.55** 在案例2中-返回doubleVariable.ToString(“0.00”,{en US})返回一个空字符串//**我需要0.00** 有什么提示可以帮你摆脱这个吗 编辑: 方法 private string GetContent( NumericUserVariable templateNumericUser
方法
,它返回一个字符串
在案例1中-返回doubleVariable.ToString(“0.55”{en US})
返回0.55
/**我需要0.55**
在案例2中-返回doubleVariable.ToString(“0.00”,{en US})
返回一个空字符串
//**我需要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)。改为使用字符串(“0.00”)
这里(0.0)
是双变量的值
但也要考虑:
doubleValue.ToString("F" + templateNumericUserVariable.DecimalPlace, cultureInfo)
例如(0.0)。ToString(“F2”)
给出了带有两个(固定)小数的“0.00”
。我无法重现该问题。你能提供一个简短而完整的示例来演示这个问题吗?如果我用CultureInfo.GetCulture(“en-US”)
替换{en-US}
(它不会返回空字符串,它会返回0.00
,因此,请发布一些实际的代码来说明这个问题。请告诉我在每种情况下,doubleVariable
的值是多少。在每种情况下,doubleVariable.ToString(新的CultureInfo(“en-US”))
不返回格式字符串时会返回什么?编辑:代码看起来很混乱,但在格式字符串中使用的是#
字符而不是0
。您可能需要更改。doubleVariable的值可以是任何带2位小数的双精度数字。ToString()方法的第二个参数不是硬编码为{en US}。它从客户机提供的4个值中获取不同的值。直接使用CultureInfo.InvariantCulture可以帮我吗?这很有效。但是,返回0.0表示0.00。如何得到0.00?