>>> str(1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702)
'1.41421356237'
有没有办法让 str() 将更多数字记录到字符串中?我不明白为什么它默认截断。
>>> str(1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702)
'1.41421356237'
有没有办法让 str() 将更多数字记录到字符串中?我不明白为什么它默认截断。
尝试这个:
>>> from decimal import *
>>> Decimal('1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702')
Decimal('1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702')
默认情况下,float
文字会被截断以适应为其提供的空间(即不是因为str
):
>>> 1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702
1.4142135623730951
如果您需要更多小数位,请decimal
改用。
Python 编译器正在截断;您的浮点文字具有比 C 双精度表示的精度更高的精度。如果您需要更高的精度,请首先将数字表示为字符串。
那是因为它正在转换为浮点数。这不是导致它的字符串转换。您应该使用 decimal.Decimal 来表示此类高精度数字。