在python中,不能在指数上加1



我有一个指数格式的数字,想在数字上加1。python为什么要打印原始编号?

num = 1.1920928955078124e+16
print(num)     # == 1.1920928955078124e+16
print(num + 1) # == 1.1920928955078124e+16
print(num + 2) # == 1.1920928955078126e+16

然而,当我加2时,它起作用并返回原始数字+2

感谢的帮助

科学表示法总是用浮点表示。尝试:

num = 1.1920928955078124e+16 #float
print(int(num))  #Convert that float to int
# 11920928955078124
print(int(num) + 1)
# 11920928955078125

您的号码由浮动表示

type(1.1920928955078124e+16)  # <class 'float'>

您可以使用int(num)将其强制转换为int。

浮点数字的精度也有限。如果您需要更高的精度,可以使用decimal.Decimal

from decimal import Decimal
Decimal('1.1920928955078124e+16') + 1  # Decimal('11920928955078125')

或者像numpy这样的库

import numpy as np
np.int64(1.1920928955078124e+16) + 1  # 11920928955078125

最新更新