Приведение с использованием int () превращает 16.0 в 15 - PullRequest
0 голосов
/ 15 апреля 2020

Так что у меня странная проблема при попытке привести число с плавающей точкой к целому числу. Мой код в настоящее время выглядит следующим образом:

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 вместо этого?

1 Ответ

1 голос
/ 15 апреля 2020

вы пробовали функцию округления? round (атомов) округляется до ближайшего целого числа 5.6 будет 6, а 5.4 будет 5, если вы хотите go использовать ceil (атомы), иначе floor (атомы). надеюсь, это поможет вам!

...