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

本文关键字:en-US 返回 55-C# ToString 双重 | 更新日期: 2023-09-27 18:00:52

我有一个method,其中returnsstring

在情况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);
        }

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

要达到目标,您需要使用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_。