使用int()铸造将16.0转换为15

问题描述 投票:0回答:1

因此,在尝试将浮点数转换为整数时,我遇到了一个怪异的问题。我的代码当前如下所示:

from math import gcd 
def dostuff(n,m):
    L = np.sqrt(n**2+m**2+n*m)
    dR = gcd(2*m+n,2*n+m)
    atoms=4*L**2/dR
    print(atoms)
    atoms = int(atoms)
    print(atoms)

当我以n = 4和m = 4运行此代码时,第一张打印返回16.0,而第二张打印返回15。这是什么原因,我有什么办法使第二张返回16代替?

python casting int
1个回答
1
投票

您是否尝试过舍入功能?round(atoms)将四舍五入到最接近的整数5.6将为6和5.4将为5如果要上去,请使用ceil(原子),否则使用floor(原子)。希望对您有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.