>>> 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 コンパイラが切り詰めています。float リテラルの精度は、C の double で表現できる精度よりも高くなっています。さらに精度が必要な場合は、最初に数値を文字列として表現します。