我使用这种格式{0:P2}
它返回了正确的值,但问题是它在值和%符号之间给出了空格。我如何删除该空间?
示例:
String.Format("Value: {0:P2}.", 0.8526) // formats as 85.26 %
我想删除85.26和%符号之间的空格。
答案 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%
。在您的情况下,因为在格式化值时未指定CultureInfo
或NumberFormatInfo
,所以您使用当前文化进行格式化(用户在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%"