DecimalFormatは、Double.toString()表現を解析します (科学的および財務的な形式である可能性があります)。
double を String に直接変換する代わりに、Sun がこのアプローチを選択したのはなぜですか?
PS: より具体的に。Double自体の内部表現をフォーマットするのではなく、Doubleをフォーマットするために、DecimalFormatが内部的にDouble.toString()を使用するのはなぜですか?
DecimalFormatは、Double.toString()表現を解析します (科学的および財務的な形式である可能性があります)。
double を String に直接変換する代わりに、Sun がこのアプローチを選択したのはなぜですか?
PS: より具体的に。Double自体の内部表現をフォーマットするのではなく、Doubleをフォーマットするために、DecimalFormatが内部的にDouble.toString()を使用するのはなぜですか?
DecimalFormat を使用すると、書式設定パターンを指定できるため、書式をより詳細に制御できます。
おそらく、Sun はDRYの原則に従っています。
彼は、「Double.toString(withSomeParameters)」が DecimalFormat を使用する代わりに仕事をするように尋ねるかもしれません。
理由は i18n かもしれません。1,800.39 と入力できる場所もあれば、1.800,39 と入力できる場所もあります。
「直接変換」の意味がわかりませんが、toString()
常にデバッグ情報のみです! フロントエンドで値を表示するために使用しないでください。DecimalFormat
解析とフォーマットに使用してください!
金融アプリケーションの場合は、丸めモードと精度を制御できる BigDecimal を代わりに使用してください。