重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【解消】通知が届かない不具合について

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

A 回答 (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()); };

};

}
    • good
    • 0

ん? 浮動小数点型ですよね?


整数型だと例外になりますから。

下の型とやってることは同じですが、

double a, b, c;
c = ((a == 0.0) && (b == 0.0))
 ? 0.0
 : a / b;
    • good
    • 0

ものすごく単純かもしれませんが


int a;
int b;
int c;
if(a==0 && b==0){
 c=0;
}else{
 c=a/b;
}
では駄目でしょうか?
    • good
    • 0

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