如何在python中获取浮点乘法的小数部分?

时间:2019-01-25 04:34:06

标签: python-3.x

我用2种方法在Python 3.7中尝试了浮点乘法。方法1给我期望的输出为十进制值(4.995),但是方法2给我只有四舍五入的数字(5.0)。

方法1

a=float(1.11)

b=float(4.5)

print(float(a*b))   
#  output is 4.995

方法2

x=5.0/4.5   # Output for x=1.11

a=float(x)

b=float(4.5)

print(float(a*b))   
#  output is 5.0

在我的原始代码中,我想像方法2 (x = 5.0 / 4.5)中那样计算x值,我得到的x值为 1.11 ,但是如果我使用方法2 中的x变量进行浮点乘法,我得到的是四舍五入的数字 5.0 而不是 4.995 。因此,如何像方法1 中那样为方法2 操作获取小数?在此先感谢。

1 个答案:

答案 0 :(得分:2)

第二种方法没有给出四舍五入的数字,重复5 / 4.5 = 1.111,这在python中的存储方式是通过二进制替换数字,因此在float中的四位中像这样,
    0000000000000001.0001110001110001
vs 1.11,其存储方式更像这样
    0000000000000001.000111000010100011
因此,在进行乘法运算时,需要进行一些位检查,发现顶部应该基本上是1.11111111重复并将其乘以5.0,请注意,这不是完整的详细说明,而是通俗易懂的。