十进制到百分比格式化程序

时间:2014-04-28 15:30:54

标签: c#-4.0

我使用这种格式{0:P2}它返回了正确的值,但问题是它在值和%符号之间给出了空格。我如何删除该空间?

示例:

String.Format("Value: {0:P2}.", 0.8526) // formats as 85.26 %  

我想删除85.26和%符号之间的空格。

4 个答案:

答案 0 :(得分:1)

怎么样:

//using System.Globalization;
string result = String.Format(CultureInfo.InvariantCulture, "Value: {0:0.00%}", 0.8526); //85.26% 

答案 1 :(得分:1)

百分比值的格式由格式化值时使用的NumberFormatInfo控制。更具体地说,NumberFormatInfo.PercentPositivePattern控制格式,对于您来说,该属性的值为0,导致模式为n %,但您希望使用1而不是n%。在您的情况下,因为在格式化值时未指定CultureInfoNumberFormatInfo,所以您使用当前文化进行格式化(用户在Windows中设置的文化)。你可以克隆它并修改它:

var cultureInfo = CultureInfo.CurrentCulture;
var numberFormat = (NumberFormatInfo) cultureInfo.NumberFormat.Clone();
numberFormat.PercentPositivePattern = 1;
var result = String.Format(numberFormat, "Value: {0:P2}.", 0.8526);

要格式化负数,您必须相应地修改NumberFormatInfo.PercentNegativePattern

答案 2 :(得分:0)

string ret = "Value: " + String.Format("{0:P2}.", 0.8526).Replace(" ", "");

返回:价值:85.26%。

答案 3 :(得分:0)

很长的路要走:

String formatedPercent = String.Format("{0:P2}",0.8526);
String[] splitFormated = formatedPercent.Split(" ");
Sting output = "Value: " + splitFormated[0] + splitFormated[1];

返回"价值:85.26%"