Javaでdouble型の変数xを小数点以下2桁まで表示する方法について

double a=1431*100000/102406;
System.out.println(a);     //1397.0と表示される。
int b;
int c;
b=(int)(a*1000);
System.out.println(b);     //1397000と表示される。
c=b % 10;
System.out.println(c);     //0
b-=c;
if(c>=5){
b+=10;
}
System.out.println(b); //1397000
a=((double)b)/1000;
System.out.println(a); //1397.0
//のように表示されます。
double a=1431*100000/102406;
でも、
double a=(1431/102406)*100000;
にしたら、0.0になりました。
最終的には、普通の1397.38を表示させたいのですが、お分かりの方、ご教示ください。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2017/05/01 09:30:36
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:rsc96074 No.1

回答回数4503ベストアンサー獲得回数437

ポイント200pt

 こちらは参考になるでしょうか。「formatメソッド」を使うのはどうでしょうか。それから、実数計算には、最初の方で「.0」を付けておきましょう。

class Hatena170428 {

	public static void main(String[] args) {
		double a = 1431*100000/102406;
		System.out.println(a);
		double b = 1431.0*100000/102406;
		System.out.println(String.format("%.2f", b));
	}
}

※参考URL
http://java-code.jp/173

他1件のコメントを見る
id:rsc96074

 その場合は、せめて最初の文字だけでもキャストしておくのはどうでしょうか。

    double a = (double)b/c*100000;

※参考URL
https://www.javadrive.jp/start/cast/index3.html

2017/04/28 17:21:51
id:kojiro_i619

参考URLで、ほぼわかりました。

2017/04/28 18:45:33

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません