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?