Format decimal for percentage values?

前端 未结 5 586
别跟我提以往
别跟我提以往 2020-11-28 23:17

What I want is something like this:

String.Format(\"Value: {0:%%}.\", 0.8526)

Where %% is that format provider or whatever I am looking for

相关标签:
5条回答
  • 2020-11-28 23:27

    This code may help you:

    double d = double.Parse(input_value);
    string output= d.ToString("F2", CultureInfo.InvariantCulture) + "%";
    
    0 讨论(0)
  • 2020-11-28 23:29

    If you have a good reason to set aside culture-dependent formatting and get explicit control over whether or not there's a space between the value and the "%", and whether the "%" is leading or trailing, you can use NumberFormatInfo's PercentPositivePattern and PercentNegativePattern properties.

    For example, to get a decimal value with a trailing "%" and no space between the value and the "%":

    myValue.ToString("P2", new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 });
    

    More complete example:

    using System.Globalization; 
    
    ...
    
    decimal myValue = -0.123m;
    NumberFormatInfo percentageFormat = new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 };
    string formattedValue = myValue.ToString("P2", percentageFormat); // "-12.30%" (in en-us)
    
    0 讨论(0)
  • 2020-11-28 23:38

    Use the P format string. This will vary by culture:

    String.Format("Value: {0:P2}.", 0.8526) // formats as 85.26 % (varies by culture)
    
    0 讨论(0)
  • 2020-11-28 23:41

    I have found the above answer to be the best solution, but I don't like the leading space before the percent sign. I have seen somewhat complicated solutions, but I just use this Replace addition to the answer above instead of using other rounding solutions.

    String.Format("Value: {0:P2}.", 0.8526).Replace(" %","%") // formats as 85.26% (varies by culture)
    
    0 讨论(0)
  • 2020-11-28 23:47

    If you want to use a format that allows you to keep the number like your entry this format works for me: "# \\%"

    0 讨论(0)
提交回复
热议问题