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

如何将超长十六进制字符串正确转换为decimal类型?

解决方法

报错的核心原因是decimal类型的默认转换器不支持直接解析带0x前缀的十六进制字符串,且该十六进制对应的数值远超普通整型(如Int64)的上限,无法通过普通整型中转。可以借助System.Numerics.BigInteger类型作为中间载体完成转换,该类型支持任意长度的整数解析,且你给出的目标数值远小于decimal的最大取值范围(约7.9e28),转换无精度损失。

完整实现代码(兼容PowerShell 5.1及以上版本)

# 输入的十六进制字符串
$hexStr = '0x82e83f52d81253e79c4'
# 去除十六进制前缀,兼容大小写前缀格式
$cleanHex = $hexStr.TrimStart('0x','0X')

# 先将无前缀的十六进制字符串转换为BigInteger
$bigIntVal = [System.Numerics.BigInteger]::Parse($cleanHex, [System.Globalization.NumberStyles]::HexNumber)
# 再将BigInteger转换为decimal类型
$decimalVal = [decimal]$bigIntVal

执行后输出$decimalVal即可得到你需要的结果:38636990646568762636740


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:27:03