为了账号安全,请及时绑定邮箱和手机立即绑定

更多无理数位数

更多无理数位数

跃然一笑 2021-03-12 08:26:13
>>> str(1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702)'1.41421356237'有没有一种方法可以使str()将更多的数字记录到字符串中?我不明白为什么默认情况下会截断它。
查看完整描述

3 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

尝试这个:


>>> from decimal import *

>>> Decimal('1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702')

Decimal('1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702')

该float文本默认情况下,截断以适应在空间可供它(即它不会因为str):


>>> 1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702

1.4142135623730951

如果需要更多小数位,请decimal改用。


查看完整回答
反对 回复 2021-03-31
?
呼如林

TA贡献1798条经验 获得超3个赞

Python的浮点数仅使用双精度,即64位。它们根本无法(显着)代表比您看到的更多的数字。

如果需要更多功能,请查看内置的十进制模块或mpmath软件包。


查看完整回答
反对 回复 2021-03-31
?
守着一只汪

TA贡献1872条经验 获得超3个赞

Python编译器正在截断;您的浮点文字的精度比C double中的精度更高。如果需要更高的精度,请首先将数字表示为字符串。


查看完整回答
反对 回复 2021-03-31
  • 3 回答
  • 0 关注
  • 251 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号