• 締切済み

NaNではなく、0と表示させたい

0を0で割った時に, NaNと表示されるのではなく、 0と表示させたいのですが、 どうしたらよいですが?

みんなの回答

  • ssr-y6
  • ベストアンサー率71% (5/7)
回答No.3

 計算前の値を検査して結果を制御するか、結果に応じてその結果を修正することになると思います。  以下がその例です。 public class zero { public static void main(String args[]) { double a, b, c; try { if (args.length < 2) return; a = Double.parseDouble(args[0]); b = Double.parseDouble(args[1]); //通常の結果 c = a / b; System.out.println(c); //0を0で割ったとき結果を0にする c = ((a == 0.0) && (b == 0.0) ? 0.0 : a / b); System.out.println(c); //0を何か(NaNなど)で割ったとき(0を0で割ったときも)結果を0にする c = (a == 0.0 ? 0.0 : a / b); System.out.println(c); //結果がNaNの時に結果を0にする c = (Double.isNaN(a / b) ? 0.0 : a / b); System.out.println(c); } catch (Exception e) { System.out.println(e.toString()); }; }; }

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

ん? 浮動小数点型ですよね? 整数型だと例外になりますから。 下の型とやってることは同じですが、 double a, b, c; c = ((a == 0.0) && (b == 0.0))  ? 0.0  : a / b;

noname#6248
noname#6248
回答No.1

ものすごく単純かもしれませんが int a; int b; int c; if(a==0 && b==0){  c=0; }else{  c=a/b; } では駄目でしょうか?

関連するQ&A