Powershell 设置小数点后百分比的格式并删除尾随的零

Powershell 设置小数点后百分比的格式并删除尾随的零,powershell,number-formatting,percentage,Powershell,Number Formatting,Percentage,考虑以下代码: $Obj = @( [PSCustomObject]@{ LimitNew = 5368709120 Usage = 6166915072 } [PSCustomObject]@{ LimitNew = 10737418240 Usage = 5368709120 } [PSCustomObject]@{

考虑以下代码:

$Obj = @(
    [PSCustomObject]@{
        LimitNew        = 5368709120
        Usage           = 6166915072
    }
    [PSCustomObject]@{
        LimitNew        = 10737418240
        Usage           = 5368709120
    }
    [PSCustomObject]@{
        LimitNew        = 107374182400
        Usage           = 86973087744
    }
    [PSCustomObject]@{
        LimitNew        = 107374182400
        Usage           = 97710505984
    }
)

$CultInfo = New-Object System.Globalization.CultureInfo -ArgumentList 'en-us',$false
$CultInfo.NumberFormat.PercentDecimalDigits = 2
$Obj |select @{L='pct used';E={($_.Usage/$_.LimitNew).ToString('P', $CultInfo)}}
它返回以下输出:

pct used
--------
114.87 %
50.00 % 
81.00 % 
91.00 % 
pct used
--------
114.87 %
50 % 
81 % 
91 % 
我真正想要的是以下输出:

pct used
--------
114.87 %
50.00 % 
81.00 % 
91.00 % 
pct used
--------
114.87 %
50 % 
81 % 
91 % 
在阅读时,我似乎找不到省略尾随零的选项。方法
$CultInfo.NumberFormat.PercentDecimalDigits
指定小数分隔符后的位数,但不指定如何省略零。

读取:

“%”自定义说明符

格式字符串中的百分号(
%
)会导致数字被删除 在格式化之前乘以100。本地化的百分比符号 插入数字中出现%的位置 格式字符串。使用的百分比字符由 当前NumberFormatInfo对象的PercentSymbol属性

下面的代码段应该可以做到这一点:

$Obj | Select-Object @{
    L='pct used';
    E={($_.Usage/$_.LimitNew).ToString('#0.## %', $CultInfo)}
    }
结果:


……但为什么?!我已经找了一段时间了。你的代码正是我需要的。非常感谢!:)