プロが教える店舗&オフィスのセキュリティ対策術

修士論文でJavaを使ったアプリケーションを開発しています。そこで、質問なのですが、
例えば1.19E-07という文字列をDoubleにしたいのですが、良い方法が見つかりませんでした。
Double.parsedouble()を使ってみたのですが、実行エラーが出てしまいます。
知っている方がおられましたらよろしくお願いいたします。

A 回答 (3件)

まず、"1.19E-07"という文字列の"E"は、通常は自然対数の底ではありません。


指数であることを示しているだけで、この文字列は1.19×10の-7乗を意味します。
そうではなく、あくまでも自然対数の底だという場合は、この回答は無視して下さい。
Double.parseDouble()はdoubleを返します。これはプリミティブ型と言い、
参照型であるDoubleとは異なります。下のどちらが必要なのか、考えてみて下さい。

double f = Double.parseDouble("1.19E-07");
Double f = new Double("1.19E-07");
    • good
    • 0
この回答へのお礼

無事解決できました。プリミティブ型と参照型の違いをあまり良く分かっていなかったようです。解答ありがとうございました。

お礼日時:2003/07/30 16:19

原因として考えられるものは三つあります。



1. メソッド名が間違っている。
parsedouble ではなくて parseDouble です。

2. Double と double を間違えている。
Double は参照型、double はプリミティブ型です。
Double を得るには new Double(文字列) を、
double を得るには Double.parseDouble(文字列) を使用します。

3. 使用しているJavaのバージョンが古い。
parseDouble はバージョン 1.2 以降でないと使えません。最新版のJava実行環境を使用しているか確認してください。なお、マイクロソフト社製のJava実行環境はバージョン1.1相当です。
ただし、new Double(文字列) は古いバージョンでも使えます。

ところで、この「E」は「自然対数の底」ではなくて、「指数」を意味する exponent の頭文字だと思います。
    • good
    • 0
この回答へのお礼

すべてがご指摘どおりでしたので、勉強になりました。ありがとうございました。

お礼日時:2003/07/30 16:16

専門家ではないので、


1.19E-07というのが何かわかりませんが・・・

java.lang.Math.E はdoubleです。

自然対数の底 e にもっとも近い double 値です。
とAPIに載っています。

お役に立てますか?
    • good
    • 0
この回答へのお礼

無事に解決できました。ありがとうございました。

お礼日時:2003/07/30 16:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!