• 締切済み

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

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

  • Java
  • 回答数3
  • ありがとう数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

  • fortranでのNaNについて

    お忙しい所、NaNについて回答お願い致します。 fortranでプログラムを使用して数値計算を行っていますが、計算途中で結果がNaNとなり困っています。 NaNは、0で除算を行なったり、負の数の指数を求めようとした時に出る無限大や定義できない値のようなのですが、式を見ても0で除算を行なったり、負の数の指数を求めようとしている所はありません。 もし同じような経験をされて見事解決された方、居られましたらその時の対処法をお聞かせ願えないでしょうか。 何卒よろしくお願い致します。

  • +NANってなんですか??

    以下のコードをコンパイル実行すると、printfで表示する変数が全て『+NAN』と表示されます。 ------------------------------- #include<stdio.h> int main(void){ double Vin,Vref,Vout,dv,P,I,PI,nextV,m; printf("input Vref : "); scanf("%f",&Vref); printf("\ninput Vin : "); scanf("%f",&Vin); printf("\ninput Vout : "); scanf("%f",&Vout); dv=0; P=0; I=0; m=0; nextV=0; printf("dv | P | I | PI | nextV | m | Vout |\n"); for(;;){ dv=Vref-Vout; printf("%f ",dv); P=dv*0.1; printf("%f ",P); I=I+dv*0.01; printf("%f ",I); PI=P + I; printf("%f ",PI); nextV = Vout + PI; printf("%f ",nextV); m=nextV/(Vin * 7.2); printf("%f ",m); Vout = nextV + 2; printf("%f \n",Vout); } return 0; } ------------------------- なにがなんだか、何がNANだかわかりません(涙 よろしくお願いします。

  • DateクラスのNaNの可能性について

    getMonth()、getHours()などの戻り値がNaNになる状態ってどういうことが考えられるのでしょうか。 通常は、正常に値が取れているのですが、どこかのタイミングだけ(一瞬?)NaNになってしまいます。

  • javascriptで結果表示テキストフィールドにInfinityやNaNを表示させない方法はありますか?

    テキストフィールドに合計ともう1つの合計を わるのですが、合計/合計とした場合、 最初の合計が0/3となっていると、Infinityと表示し、 空白/3となると、NaNを表示します。 表示させない方法はありますか? 教えて下さい。

  • Math.random がNaNになる理由

    ループでMath.random() * a[i] こうするとNaNが返ってきます。なぜでしょうか?

  • 和訳お願いします。 for input string nan

    和訳お願いします。 for input string nan

  • parseIntで戻り値がNaNになるのはなぜ?

    parseIntを使って文字列型から数字だけを抜き出して数値型へ変換したいのですが、 下記のようにNaNになってしまいます。何が悪いのでしょうか。 <html lang="ja"> <head> <title></title> </head> <body> <script> var a = "100点満点" var b = parseInt('a',10); document.write('typeof a ⇒ '+typeof a+'<br>'); document.write('var b = parseInt("a",10); ⇒ '+b+'<br>'); document.write('typeof b ⇒ '+typeof b+'<br>'); </script> </body> </html> 上記の結果は、 --------------------------------- typeof a ⇒ string var b = parseInt("a"); ⇒ NaN typeof b ⇒ number ---------------------------------

  • NaN(Not a Number)を配列に入れないようにするには

    forループで計算しているときに、配列にどんどん値を格納しているとします。 で、計算結果がNaNになったときは格納しないようにしたいのです。 困っています。お願いします。

    • ベストアンサー
    • Java
  • 草なぎ剛(チョナン・カン)の「なぎ(=nan)」について。 

    過去に多少話題になっているようですが…。 「なぎ」(弓+剪)は何故に「nan」と発音するのでしょうか? 日本での「なぎ」は特殊な漢字で、現在は姓名の「草なぎ」にしか使わない、日本の国字(オリジナル漢字)とされています。元々の意味は、「なぎ」とは秋田弁で稲刈りのでの「刈る」という意味らしいです。 このような漢字は他にもあります。例えば「畑」です。これは見ての如く会意文字で、火と田を組み合わせて作ってあります。(ちなみに韓国には水と田をあわせた「タプ」というオリジナル漢字があります。) そして、先ほどの「畑」は中国では音を「田」に借りて、(強引に)tianと発音します。 その傾向から「なぎ」も「剪」から発音を借りてきていると思いましたが違うようです。また、「前」や「刀」も「nan」とは発音しないようでした。 どなたか(専門家)で「なぎ」の韓国音をご存知の方いらっしゃらないでしょうか?又「nan」と発音すると知っているかたは、その出典(辞書等)をお教え下さい。 私の手持ち&図書館の辞書のレベルではわかりませんでした。 どんな小さな情報でもよいのでお教えください。

  • アクセス解析ページでの「undefined」や「NaN」の意味

    忍者ツールズのアクセス解析を利用しているのですが、 管理画面のリピーター調査/ID・ブラウザを見ると「undefined」「NaN」「.」などが上位に上がっています。 今まではプロパイダの名前が当たり前だったので、 上記のような記号が上位に入っていてとても驚いています。 もしかすると何かのウイルスや嫌がらせだったりするのでしょうか。 もし何か原因があるのでしたら教えていただけたら・・・と思います。 よろしくお願い致します。