Python: float 为小数点后可变位数的字符串

标签 python

我需要将浮点值表示为小数点后具有不同位数的字符串,这应该由变量设置,而不是像"%.2f"那样硬编码.

现在我使用round方法:

def float_to_str(value, digits):
    return str(round(value, digits))

此函数会删除多余的数字,因此结果没有指定的数字位数。但它不会添加尾随零。

float_to_str(1.3573, 2)   =>  "1.35"  - OK 
float_to_str(1.3573, 3)   =>  "1.357" - OK 
float_to_str(1.3000, 2)   =>  "1.3"   - NOT OK (needed "1.30")

有没有更好的方法来实现这个功能?

最佳答案

您应该使用 format 函数,它可以使用类似于 "%.2f" 的语法,并格式化它:

def float_to_str(value, digits):
    return "{value:.{digits}f}".format(value=value, digits=digits)

关于Python: float 为小数点后可变位数的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61090311/

相关文章:

python - Scrapy CrawlSpider - 添加元数据到请求

Python 告诉 ftp 传输何时完成

python - 使用特殊字符连接 Pandas 问题中的数据框

python - 是否有更 pythonic 的方式来填充此列表?

python - 我应该从 "urllib.request.urlretrieve(..)"切换到 "urllib.request.urlopen(..)"吗?

python - 在输出python中寻找字符串?

python - 如何读取获取的单元格数据的值作为日期谷歌表格 API

python - 访问 Django 中自定义 UserCreationForm 的附加字段

python - 无法在 tensorflow keras中附加张量板回调

python - 如何将 pandas DataFrame 保存到 excel 文件?