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

Python 3浮点数格式化需求:支持正负精度的字符串转换

解决方案

可以利用Python内置的round()函数(原生支持正负精度)结合字符串格式化来实现需求,以下是完整实现:

def to_string_(x: float, prec: int) -> str:
    rounded = round(x, prec)
    if prec < 0:
        return str(int(rounded))
    else:
        if prec == 0:
            return str(int(rounded))
        return f"{rounded:.{prec}f}"

逻辑说明

  • 负精度处理:round(x, prec)当prec为负数时,会自动对小数点左侧的对应数位四舍五入(比如prec=-1对应十位),结果是整数形式的浮点数,转成整数再转字符串即可去掉多余的.0。
  • 零精度处理:四舍五入到整数位后,直接转整数字符串,避免出现.0后缀。
  • 正精度处理:使用格式化字符串f"{rounded:.{prec}f}",自动保留指定小数位数,不足时补零,完全匹配示例中的格式要求。

验证示例

运行你给出的测试用例,结果完全符合预期:

>>> to_string_(1.2345e2, 3)
'123.450'
>>> to_string_(1.2345e2, 2)
'123.45'
>>> to_string_(1.2345e2, 1)
'123.5'
>>> to_string_(1.2345e2, 0)
'123'
>>> to_string_(1.2345e2, -1)
'120'
>>> to_string_(1.2345e2, -2)
'100'
>>> to_string_(1.2345e2, -3)
'0'
>>> to_string_(1.2345e-1, 0)
'0'
>>> to_string_(1.2345e-1, 1)
'0.1'
>>> to_string_(1.2345e-1, 6)
'0.123450'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:40:21