微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python-如何不获取科学计数法的指数例如1.2 ** 1000 = 1.5179100891722457e + 79

如何解决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 举报,一经查实,本站将立刻删除。