我有一个指数格式的数字,想在数字上加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