
No.1ベストアンサー
- 回答日時:
まず、DoubleクラスのintValue()メソッドを使えば、整数部がはじける。
IntegerクラスのdoubleValue()メソッドを使えば、そのint値をdouble値に変換できるので、元のdouble値と演算できるね。具体的なサンプルを用意したので参考にして欲しい。
public class A {
public static void main(String[] args) {
Double d = new Double(1.25);
Integer i = new Integer(d.intValue());
Double d2 = new Double(i.doubleValue());
System.out.println(d.doubleValue());
System.out.println(d2.doubleValue());
System.out.println(d.doubleValue() - d2.doubleValue());
}
}
この回答への補足
anmochiさん、サンプルありがとうございます。
小数部を取得することが出来ました!
余談になってしまうんですが、
int i = new Integer(d.intValue());や
double d2 = new Double(i.doubleValue());は、
int i = (int) d;や
double d2 = (double) i;などでは
まずいんでしょうか?
Java(オブジェクト指向)をまだ理解していないもので、いまいちnewとかの使いどころが
曖昧で、サンプルのようなコードイメージがパッと浮かばないんです・・・
No.2
- 回答日時:
値を1で割った余りを求めるのが簡単。
例えば
System.out.println(123.75 % 1.0);
で「0.75」と出力される。
で、補足に関してですが、
> int i = new Integer(d.intValue());
> double d2 = new Double(i.doubleValue());
↑これはまずい。(new 演算子によって作られた)IntegerやDoubleのオブジェクトをintやdouble型の変数に入れることはできないのです。
anmochi氏の回答をよく見てみてください。int/double型ではなくInteger/Doubleが他の変数に代入していますよね。
> int i = (int) d;
> double d2 = (double) i;
↑こちらはOK。
Integer/Double のオブジェクトを使っても、int/double の値で直接計算しても実質的な処理内容は同じです。
ただ、doubleよりintのほうが表せる値の範囲が小さいので元の実数値が大きいと正しく小数部分のみ取り出すことができない可能性があります。
1で割った余りを取る方法ではこういう心配はありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
0dの意味を教えてください
-
実数からの小数部の取得
-
乱数のdouble型について
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
Log4jで機能毎に別ファイルへ出...
-
「配列定数は、イニシャライザ...
-
オブジェクトの中のプロパティ...
-
ORA-01858: 数値を指定する箇所...
-
IF関数でEmpty値を設定する方法。
-
BOOL値を逆にしたい
-
[Ljava.lang.Stringってなんですか
-
java キーボード入力された値の...
-
intが負の時に投げる例外はあり...
-
ArrayListからBean配列に値をセ...
-
eclipseに記述したjavaファイル...
-
ファイルの読み飛ばしが出来ま...
-
byte[] を long,float とかに...
-
ループ処理の際、最後だけ","を...
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0dの意味を教えてください
-
実数からの小数部の取得
-
べき乗
-
double型変数値の整数部分のみ...
-
Javaで何パーセント%かを表示...
-
Java math.powメソッド
-
doubleとintの違い
-
ダイアログベースの3次Spline...
-
プログラムのおかしいところを...
-
最大値と最小値の求め方
-
Javaによる利率計算の実装方法
-
掛け算演算を使わない掛け算
-
演算子 ^ は double,double に...
-
javaで1.8x10の308乗÷...
-
printfでのエラーがわからない...
-
オブジェクトの中のプロパティ...
-
System.err. printlnとSystem.o...
-
IF関数でEmpty値を設定する方法。
-
ループ処理の際、最後だけ","を...
-
動的配列が存在(要素が有る)か...
おすすめ情報