当前位置: 首页 > 知识库问答 >
问题:

Python:浮点到字符串,小数点后的位置数可变

安泰平
2023-03-14

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

现在我使用的是圆形方法:

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")

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

共有3个答案

左丘兴生
2023-03-14

您可以使用*在格式字符串中表示可变宽度:

def float_to_str(value, digits):
    return "%.*f" % (digits, value)
公羊玉泽
2023-03-14

格式化mini语言还允许嵌套替换:

def float_to_str(value, digits):
    return f"{value:.{digits}f}"
拓拔骁
2023-03-14

您应该使用format函数,该函数可以使用类似于“%.2f”的语法,并设置以下格式:

def float_to_str(value, digits):
    return "{value:.{digits}f}".format(value=value, digits=digits)
 类似资料:
  • 我有这个: 我想给这个方法传递一个浮点值,四舍五入到一个小数位,将其转换为字符串,然后返回它。目前,这对数字没有任何影响。 会更有效吗?我是C语言的新手。

  • 本文向大家介绍go浮点数转字符串保留小数点后N位的完美解决方法,包括了go浮点数转字符串保留小数点后N位的完美解决方法的使用技巧和注意事项,需要的朋友参考一下 最近在项目中碰到很多次float转string,同时要求保留小数点后几位,并且去掉小数点后0的场景 虽然问题很简单,但是隔了挺久没处理这种场景就有些生疏了,自己也搜了一下,很多回答都不太满意。这里贴一下自己的做法,如果有更好的解决办法的话,

  • 问题内容: 我需要输出4个不同的浮点数到小数点后两位。 这就是我所拥有的: 这是非常不干净的,看起来很糟糕。是否有办法在输出’%.2f’中进行浮动? 注意:使用Python 2.6。 问题答案: 好吧,我至少会清理如下:

  • 问题内容: 我正在从文件中读取数据,对其进行修改并将其写入另一个文件。新文件将被另一个程序读取,因此保持准确的格式至关重要 例如,输入文件中的数字之一是: 我的脚本对列应用了一些数学运算,应该返回 但是目前返回的是 我怎么会写一个浮动例如,作为一个文件? 问题答案: 将其格式化为6位小数: 演示: 该函数按照给定的格式说明将值转换为字符串。

  • 在编程语言中,小数通常以浮点数的形式存储。浮点数和定点数是相对的:小数在存储过程中如果小数点发生移动,就称为浮点数;如果小数点不动,就称为定点数。 如果你对浮点数的底层存储格式不了解,请猛击:小数在内存中是如何存储的,揭秘诺贝尔奖级别的设计(长篇神文) Python 中的小数有两种书写形式: 1) 十进制形式 这种就是我们平时看到的小数形式,例如 34.6、346.0、0.346。 书写小数时必须

  • 我正在从一个文件中读取数据,修改它并将其写入另一个文件。新文件将由另一个程序读取,因此保留精确的格式至关重要 例如,我输入文件中的一个数字是: 我的脚本对列应用了一些数学运算,应该会返回 但目前返回的是 我如何将浮点值(例如)写入一个文件中?