Python Decimal は float からの構築をサポートしていません。最初に float を文字列に変換する必要があると想定しています。
float の標準的な文字列フォーマッタでは、有効桁数ではなく小数点以下の桁数を指定する必要があるため、これは非常に不便です。したがって、小数点以下 15 桁までの数値がある場合は、 のようにフォーマットする必要がありますDecimal("%.15f" % my_float)
。これにより、10 進数の前に有効桁数がある場合、小数点以下 15 桁にゴミが表示されます ( Decimal("%.15f" % 100000.3) == Decimal('100000.300000000002910')
)。
float から Decimal に変換して、ユーザーが入力した値を維持する良い方法を誰かが提案できますか? サポートできる有効桁数を制限する可能性がありますか?