テイラー級数を使用して関数電卓を作成するプロジェクトがあります。さらに、ieee 754 標準浮動小数点システムの数値を分析しています。
私の電卓では、単精度または倍精度のどちらが必要かをユーザーが選択します。float 変数と double 変数を使用し、ieee 754 仕様に従って数値を分析します。
ユーザーが倍精度を希望する場合、分析は次のようになります。
double analyze=3.45
BigDecimal bd=new BigDecimal(analyze)
それは私に与えます
3.45000000000000017763568394002504646778106689453125
この数値は、PC メモリにバイナリ形式で格納されている実際の数値ですか?
そうでない場合、格納されている数値の実際の値を取得する方法はありますか?
また、なぜこれが起こるのですか?
double analyze=0.5
BigDecimal db=new BigBecimal(analyze)
印刷のみ0.5
- 有効数字が失われるのはなぜですか?
なぜこれが起こるのか誰か教えてもらえますか
BigDecimal one=new BigDecimal(0.1);
BigDecimal five=one.multiply(new BigDecimal(5)) ;
System.out.println("5 times 0.1 is "+" "+ five);
System.out.println("But the 0.5 in BigDecimal is " + " "+ new BigDecimal(0.5));
これを実行すると、5 倍になります。