我应该使用什么CultureInfo或NumberFormat来创建带有double的html/css百分比.ToStr

本文关键字:double html ToStr 百分比 css 创建 什么 CultureInfo NumberFormat 我应该 | 更新日期: 2023-09-27 18:24:45

我正在编写一个ASP.Net MVC4 web应用程序,我想使用C#计算一些元素的大小。

然而,我遇到了一些麻烦,因为css只接受百分比作为xx.yy%,也就是说,用一个点作为小数分隔符,并且在百分比符号之前没有空格(据我所知)。

问题是,我找不到任何能产生这种百分比的C#文化。似乎英语(US)产生了右小数分隔符,而德语正确地使用了百分比符号(来自http://msdn.microsoft.com/en-us/library/shxtf045(v=vs.85).aspx)

Culture:                  English (United States)
(P) Percent:. . . . . . . -123,456.70 %
Culture:                  German (Germany)
(P) Percent:. . . . . . . -123.456,70%

是否有一种文化或数字格式被推荐用于此,或者至少有一种始终有效?或者我需要自己写吗?我该怎么做?

我应该使用什么CultureInfo或NumberFormat来创建带有double的html/css百分比.ToStr

您可以编写自定义扩展方法:

public static string ToPercentageString(this double d)
{
    return d.ToString("p", CultureInfo.InvariantCulture).Replace(" ", string.Empty);
}

试试这个:

double number = 0.8623;
Console.WriteLine(number.ToString("#0.##%"));

这应该产生86.23%(带点,%符号前没有空格)

您可以指定自己的自定义格式字符串:

using System.Globalization;
class Program {
    static void Main(string[] args) {
        double d = 12.345;
        string s = string.Format(CultureInfo.InvariantCulture, "{0:0.00}%", d);
    }
}

以下是一些数字格式字符串的输出示例:自定义数字格式字符串输出示例