python - 按给定精度舍入 float

标签 python floating-point rounding

我需要按指定的精度获取qty数字,如下所示:

qty = 0.1284
precision = 0.01
output = 0.12

这看起来很简单,但我无法完成它,因为我有一个精度以上变量。

最佳答案

float 数学并不精确 - 请参阅 Is floating point math broken? .

您可以使用round()舍入 - 你似乎想截断 - 你可以用数学方法做到这一点:

qty = 0.1284
precision = 0.01 

truncated = ((qty * (1/precision)) // 1 ) * precision

print(truncated)

输出:

0.12

这会将您的数字乘以正确的系数,整数除以 1 以去除剩余的部分数字,并再次乘以精度以返回您的浮点值。

关于python - 按给定精度舍入 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65070799/

相关文章:

python - 数据被插入到 MySQL 但不是永久的 - Python

Python乘法失去浮点精度

r - 在过渡期间增加轮值

python - 编辑用作 Power BI 中的数据输入的 python 脚本

python - 将结果写入同一 Excel 文件中的 2 个不同工作表

python - twine 在哪里寻找证书?

floating-point - 将 real 转换为 IEEE double std_logic_vector(63 downto 0)

Mysql ABS(AVG(field_name)) 作为总返回 float

python - 将 numpy 数组的实部和虚部元素四舍五入到零或远离零

java - 在 Java 中从 double 到 int 的转换是如何工作的?