簡體   English   中英

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

[英]double.ToString(0.55, {en-US}) returns .55 - C#

我有一個returns stringmethod

在情況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”-零占位符(如果存在)用相應的數字替換零; 否則,結果字符串中將出現零。

相反,您可以閱讀#字符

“#”-數字占位符(如果存在)用相應的數字替換“#”符號; 否則,結果字符串中不會出現數字。

OK,所以您真的在抱怨(0.0).ToString("#.##")返回"" ,對嗎?

嘗試使用(0.0).ToString("0.00")

這里(0.0)doubleVariable的值。

但還要考慮:

doubleValue.ToString("F" + templateNumericUserVariable.DecimalPlace, cultureInfo)

例如(0.0).ToString("F2")給出帶有兩個(固定)小數的"0.00"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM