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

移除后缀B后数值无法保留小数位乘1000,遇ValueError求助

解决带小数的数值字符串转整数并放大1000倍的问题

针对你遇到的问题,这里提供两种可行的解决方案:

方法一:利用浮点数转换(简单直接)

先截取掉末尾的'B',将字符串转为浮点数后乘以1000,最后转成整数即可。这种方法适用于已知数值乘以1000后为整数、且不会出现浮点数精度误差的场景:

items = ['92.96B','85.4B','33B']

for item in items:
    num_str = item[:-1]
    converted_item = int(float(num_str) * 1000)
    print(converted_item)

运行后会输出你期望的结果:

92960
85400
33000

方法二:纯字符串处理(避免浮点数精度问题)

如果担心某些十进制小数转浮点数时的精度丢失(比如0.29转浮点数后会变成0.28999999999999998,乘以1000后int转换会得到错误结果),可以用纯字符串操作来处理:

items = ['92.96B','85.4B','33B']

for item in items:
    num_str = item[:-1]
    if '.' in num_str:
        integer_part, decimal_part = num_str.split('.')
        # 补零到3位小数后拼接成整数字符串
        converted = int(integer_part + decimal_part.ljust(3, '0'))
    else:
        # 无小数部分直接补三个零
        converted = int(num_str + '000')
    print(converted)

这种方法完全通过字符串拆分、补零来实现,不会有浮点数误差问题,兼容性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:46:13