C# 始终显示符号的百分比格式字符串是多少?
我想将0.12345显示为“+12.3%”。格式字符串“P1”或“P1”给出“12.3%”。我试过“+P1”和“+P1”都没有用C# 始终显示符号的百分比格式字符串是多少?,c#,.net,C#,.net,我想将0.12345显示为“+12.3%”。格式字符串“P1”或“P1”给出“12.3%”。我试过“+P1”和“+P1”都没有用 string sFoo = 0.12345.ToString("P1"); 更新 我应该强调我总是想要正确的符号,而不是“+”。如果数字为-0.12345,“P1”的工作方式与我想要的完全相同:“-12.3%”不完全使用P1,但结果相同: 0.12345.ToString("+#.#%;-#.#%"); 如果您喜欢至少一个前
string sFoo = 0.12345.ToString("P1");
更新
我应该强调我总是想要正确的符号,而不是“+”。如果数字为-0.12345,“P1”的工作方式与我想要的完全相同:“-12.3%”不完全使用
P1
,但结果相同:
0.12345.ToString("+#.#%;-#.#%");
如果您喜欢至少一个前导数字(例如“+0.23%”而不是“+23%”),请:
尾随数字相同(例如“+14.0%”而不是“+14%”):
参考资料:不完全使用
P1
,但结果相同:
0.12345.ToString("+#.#%;-#.#%");
如果您喜欢至少一个前导数字(例如“+0.23%”而不是“+23%”),请:
尾随数字相同(例如“+14.0%”而不是“+14%”):
参考资料:恐怕没有显示正号的格式字符串。我在
NumberFormatInfo
中搜索了一些自定义格式是否可以接受,但没有结果
string sFoo = 0.12345.ToString("P1");
但是,您可以构建一些扩展方法来满足您的需要:
public static string ToSignedPercent(this double input)
{
return $"{(input >= 0 ? "+" : "")}{input.ToString("P1")}";
}
// ...
Console.WriteLine((0.12345).ToSignedPercent()); // +12.3%
Console.WriteLine((-0.6789).ToSignedPercent()); // -67.9%
恐怕没有显示正号的格式字符串。我在
NumberFormatInfo
中搜索了一些自定义格式是否可以接受,但没有结果
string sFoo = 0.12345.ToString("P1");
但是,您可以构建一些扩展方法来满足您的需要:
public static string ToSignedPercent(this double input)
{
return $"{(input >= 0 ? "+" : "")}{input.ToString("P1")}";
}
// ...
Console.WriteLine((0.12345).ToSignedPercent()); // +12.3%
Console.WriteLine((-0.6789).ToSignedPercent()); // -67.9%
在主要方法中添加以下内容。基本上,这种方法只是将变量sFoo设置为带有两个小数的百分比格式
string sFoo = String.Format("Value: {0:P2}.", 0.12345); // formats as 12.35%
Console.WriteLine(sFoo);
在主要方法中加入以下内容。基本上,这种方法只是将变量sFoo设置为带有两个小数的百分比格式
string sFoo = String.Format("Value: {0:P2}.", 0.12345); // formats as 12.35%
Console.WriteLine(sFoo);
你总是想要+。如果是这种情况,那么您可以尝试使用这个
$“+{0.12345.ToString(“P1”)}”
,如果数字为负数,它将不起作用。如果数字是-0.12345,我不想要“+-12.3%”。只有当数字为正数时,我才想要“+”。你总是想要+。如果是这种情况,那么您可以尝试使用这个$“+{0.12345.ToString(“P1”)}”
,如果数字为负数,它将不起作用。如果数字是-0.12345,我不想要“+-12.3%”。只有当数字为正数时,我才想要“+”。谢谢。这就解决了问题,但是我特别要求一个“格式字符串”。谢谢。这就解决了问题,但是我特别要求一个“格式字符串”。谢谢。这正是我想要的。谢谢。这正是我想要的。