数字が12345686844.71の文字列があり、これをdoubleに変換する必要があります。これを数式で倍精度の値で使用するためにstringと同じ値を得ることができます。 これが試されました私が、しかし、文字列に格納されている実際には同じ値でなければなりません....これは動作していないと我々は1.2345686844として値を取得している文字列を解析する際の問題
double d = Double.parseDouble(string)
数字が12345686844.71の文字列があり、これをdoubleに変換する必要があります。これを数式で倍精度の値で使用するためにstringと同じ値を得ることができます。 これが試されました私が、しかし、文字列に格納されている実際には同じ値でなければなりません....これは動作していないと我々は1.2345686844として値を取得している文字列を解析する際の問題
double d = Double.parseDouble(string)
javaで提供されているBigDecimalクラスを使用できます。
BigDecimal value = new BigDecimal(str);
がref:あなたがやっていることhttps://stackoverflow.com/a/3752626/7135460
OKこれは問題ありませんが、double型の式に同じ値を格納しようとしています。double z = x *(y/a)xはdouble、yはdouble、aは大きな10進数 – Sandeep
は正しいです。科学の表記法で数字を印刷しています。
代わりのSystem.out.print()
次のようにします。
double d = Double.parseDouble(string)
System.out.printf("dexp: %f\n", d);
あなたはE
が印刷された値の末尾にはほとんど存在していることがわかりますあなたダブルの全体値を貼り付けている場合。それはmultiplied by 10 to the power of
の略で指数があります。
重要なのは、印刷されているものではなく、メモリ内のものです。 d
に格納されている値は正しいです。印刷された値には、多くの無駄な末尾のゼロが含まれることがあります。
あなたはまた、DecimalFormat
クラスを使用することができます:[Double.parseDouble(文字列)とは、Double.valueOf(文字列)との違いは何ですか?]の
DecimalFormat df = new DecimalFormat("0", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
System.out.println(df.format(d));
可能な複製を(http://stackoverflow.com/質問/ 10577610/what-is-difference-between-double-parsedoublestring-and-double-valueofstring) –