猿问

使用 int() 进行转换将 16.0 转换为 15

所以我在尝试将浮点数转换为整数时遇到了一个奇怪的问题。我的代码目前如下所示:


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?


慕无忌1623718
浏览 107回答 1
1回答

有只小跳蛙

你试过圆形功能吗?round(atoms) 它将四舍五入到最接近的整数 5.6 将是 6,5.4 将是 5,如果你想向上使用 ceil(atoms),否则使用 floor(atoms)。希望这对你有帮助!
随时随地看视频慕课网APP

相关分类

Python
我要回答