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

PowerShell数组单个NoteProperty属性替换逗号为小数点实现数值求和

方案1:直接修改原数组

该方法会直接修改原有数组对象的属性值,适合不需要保留原始字符串格式数据的场景:

# 导入全局不变文化配置,避免系统区域设置影响数值解析
[cultureinfo]::CurrentCulture = [cultureinfo]::InvariantCulture

foreach ($item in $data1) {
    # 替换逗号为小数点后转换为decimal数值类型
    $item.Price = [decimal]$item.Price.Replace(',', '.')
}

方案2:生成新数组(不修改原数据)

该方法会生成新的对象数组,完全保留原数组所有属性,仅将目标属性替换为数值类型:

$processedData = $data1 | Select-Object *, @{
    Name = 'Price'
    Expression = { [decimal]::Parse($_.Price.Replace(',', '.'), [cultureinfo]::InvariantCulture) }
} -ExcludeProperty Price

效果验证

处理完成后可通过以下命令验证属性类型:

$processedData | Get-Member -Name Price

返回结果中Definition列会显示为decimal Price=xxx,确认已转换为数值类型,可直接用于求和计算:

# 示例:按用户姓名汇总消费总额
$processedData | Group-Object Name | ForEach-Object {
    [pscustomobject]@{
        用户名 = $_.Name
        总消费 = ($_.Group | Measure-Object Price -Sum).Sum
    }
}

如果需要处理的是你问题中提到的Value属性,只需将上述代码中的Price替换为Value即可。

内容的提问来源于stack exchange,提问作者Miha Žitko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 16:30:04