猿问

更多无理数位数

>>> str(1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702)'1.41421356237'

有没有一种方法可以使str()将更多的数字记录到字符串中?我不明白为什么默认情况下会截断它。


跃然一笑
浏览 252回答 3
3回答

哔哔one

尝试这个:>>> from decimal import *>>> Decimal('1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702')Decimal('1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702')该float文本默认情况下,截断以适应在空间可供它(即它不会因为str):>>> 1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641572735013846230912297021.4142135623730951如果需要更多小数位,请decimal改用。

呼如林

Python的浮点数仅使用双精度,即64位。它们根本无法(显着)代表比您看到的更多的数字。如果需要更多功能,请查看内置的十进制模块或mpmath软件包。

守着一只汪

Python编译器正在截断;您的浮点文字的精度比C double中的精度更高。如果需要更高的精度,请首先将数字表示为字符串。
随时随地看视频慕课网APP

相关分类

Python
我要回答