You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell使用Sort-Object排序带货币符号金额的解决方法

PowerShell 库存价格字段排序方案

无需手动排序,通过Sort-Object的计算属性做正确的数值类型转换即可实现准确排序。

问题根因

  • 直接指定Price属性排序时,Sort-Object对字符串类型值默认按字典序逐字符比较,会出现$200排序优先级高于$1000的经典排序错误
  • 直接强转[int]触发格式报错有两个核心原因:一是字符串开头的$货币符号不属于整数字符合法范围,二是库存价格带小数位,本身不适合用整数类型存储

实现代码

标准场景写法(推荐)

货币类数值优先使用decimal类型处理,可避免浮点精度误差,PowerShell的[decimal]转换支持自动识别当前系统区域下的标准货币格式,可直接处理带$符号的价格字符串:

$Result | Sort-Object -Property { [decimal]$_.Price } | Format-Table -Property Price

兼容场景写法

如果存在跨区域货币符号识别失败、价格带千分位逗号等杂项字符的情况,可以先过滤掉所有非数字、非小数点的字符再做类型转换,兼容性更强:

$Result | Sort-Object -Property { [decimal]($_.Price -replace '[^\d.]') } | Format-Table -Property Price

适配提示:如果使用区域以逗号作为小数分隔符,只需将上述正则替换规则调整为[^\d,]即可正常转换。

内容的提问来源于stack exchange,提问作者WayneAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 04:54:17