在我正在构建的应用程序中,我需要按以下方式设置百分比格式:
.00012 -> 0.01%
.0012 -> 0.12%
.012 -> 1.2%
.12 -> 12%
1.12 -> 112%
小于 1 的百分比应显示 2 位小数。任何 1 或大于的值都应仅显示 1 位小数。
目前我正在使用以下 3 部分格式字符串“0.0#%;(0.0#%);0%;”,但是我似乎无法让它以这种方式工作我需要根据数量不同的小数位数。如果可能的话,我想坚持使用 3 部分编号格式,如果不需要的话,我不想进行任何乘以 100 的操作。
最佳答案
使用conditional operator使用 P
-格式说明符切换两种情况。
var decimals = new List<decimal>() { 0.00012m, .0012m, .012m, .12m, 1.12m };
var result = decimals
.Select(num => num >= 1 ? num.ToString("P1") : num.ToString("P2"));
用于百分比的 P- 格式说明符正是您所追求的。
MSDN :
Number multiplied by 100 and displayed with a percent symbol.
关于C# 在特定情况下使用小数位格式化百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16939788/