double.ToString(0.55,{en-US})返回.55 - C#

时间:2014-04-30 13:11:47

标签: c# string double cultureinfo string-conversion

我有一个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);
        }

2 个答案:

答案 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"提供了两个(固定的)小数。