如何解决Python-如何不获取科学计数法的指数例如1.2 ** 1000 = 1.5179100891722457e + 79
例如,当计算以下2**1000
时,您会得到整个值
10715086071862673209484250490600018105614048117055336074437503883703510511249361221983198378815695858127594672917553146825187145285692314043598457757469857480393456777482423098542107460506506237237187179541821530430449849835819412673987675591655439460770629145716964776864694676688768
但是如果您对浮点数执行相同的操作,即1.2**1000
会给出
1.5179100891722457e + 79
是否有内置的方法来获得这种计算的全部价值(不是科学计数法)?
解决方法
您应该可以使用format()
a = 1.2**1000
print(format(a,'f'))
给出输出15179100891722457049849556131606991918673074938672571271083893226004713928916992.000000
尝试强制转换为整数。
int(1.2 ** 1000)
如果您想获取小数,尽管您需要根据自己的目标进行一些其他工作
,出现这种现象的原因是,第一个表达式的结果是整数,因为它的两个操作数都是整数,而第二个表达式是浮点数,因为其中一个操作数是浮点数。要获得所需的结果,可以将第二个表达式的结果强制转换为int:
>>> int(1.2**1000)
15179100891722457049849556131606991918673074938672571271083893226004713928916992L
,
您可以使用它来打印它
print("{:.3E}".format(1234567890987654321))
这将输出:
1.235E+18
您也可以使用十进制值。它将采用类似的格式。
print("{0:.3E}".format(1234567890987654321.98765432))
1.235E+18
如果要打印完整号码,则可以执行以下操作:
y = 1234567890987654321.98765432
print(f"{y:.22}")
它将输出:
1234567890987654400.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。