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で質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QアンドロイドPCの接続 MK-AR1

パソコン等の知識が乏しく またアンドロイドPCを購入してしまい
教えていただける場所が無く困っています。
お手数ですが以下の内容をお教えいただけると助かります。

販売元 (株)マキコーポレーション
商品名 アンドロイドOS 7インチポータブルパソコン
型番   MK-AR1
CPU   WM8650 800MHZ ARM9
メモリ  256MB DDR2
HD    2G NAND FLASH
OS   Android 2.2

自宅の無線RAN接続とマクドナルドでのWi-Fi接続を試したしたのですが、
接続されましたと表示されるのに メールの接続、インターネットブラウザへの
接続ができません。
何か別に登録や設定が必要なのでしょうか?
また、このアンドロイドパソコンは海外(ルーマニア)でインターネットの利用が
できるものでしょうか?

お手数ですが同機種を使っている方、もしくは詳しい方のお知恵をお貸しください。
よろしくお願いいたします。

Aベストアンサー

アンドロイドといっても、Macや携帯と同じlinuxと同じ系統のOSだというだけの話ですから、接続法は大して変わらないはずですけどねー。
もう一度マニュアルをしっかり読み直して、最初から設定をやり直してみてください。
これでだめなら、メーカーとか販売店に問い合わせてみたらどうですかね。

Qtransform(-1, 0, 0, 1, 0,

HTML5 CANVASで
transform(-1, 0, 0, 1, 0, 0)
と書かれているコードがあるのですが、どういう意味でしょうか?

・特に第1引数が分かりません
・伸縮xが-1?

Aベストアンサー

引数は座標変換のマトリックスを表していますので、単純な伸縮率とはちょっと違うかと思いますが…
ご提示の引数は以下として処理されます。
 |-1 0 0|
 |0  1 0|
 |0  0 1|

結果的に、
 X'= -x
 Y'= y
に変換されることになりますので、Y軸に対する鏡像変換(ミラー)になるかと。

CANVASの解説は以下にありますのでご参考までに。
 http://www.html5.jp/canvas/ref.html
仕様書
 http://www.w3.org/TR/2dcontext/#transformations

QアンドロイドタブレットはPCに繋いでも同期できませんか?

アンドロイドの使い勝手がよくわかりません。
memopad7(wifi接続)のSDカードはUSBケーブルをPC接続で認識しました。アマゾンのkidleで本を購入したいのですが、PC(google)でダウンロードしてもUSB接続で
タブレットへの同期はできるのでしょうか?
どうかよろしくお願いします。

Aベストアンサー

Kindle側は一台、一台の端末をちゃんと把握していてkindleのserverを介さない端末同士の同期を許していません。普通にandroidにkindleをinstallして各々の端末にdownloadして見るしかありません。

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

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

Aベストアンサー

 isNaN() という関数があるので、それで不正な数値かどうかチェックできます。

 また、数値オブジェクトは Number.POSITIVE_INFINITY と Number.NEGATIVE_INFINITY という2つのシステム変数を使ってチェックできます。

 つまり、たとえばテキストフィールドの名前が TEST1 だった場合、

 obj = document.all;
 num = obj.TEST1.value-0;
 if ( isNaN(num) ||
    num = Number.POSITIVE_INFINITY ||
    num = Number.NEGATIVE_INFINITY ) ) obj.TEST1.value="";

 というプログラムによって、不正な数値を "" にすることができます。

QPCの音をアンドロイドスマートフォンから再生させる方法

タイトルの通りなのですが、PCの音をアンドロイドに転送してアンドロイド側で聞きたいと思っています。
理由としては私はDTMをしていて家族に音を聞こえないようにしたいのとエクスぺリアZ2にノイズキャンセル機能がついていて対応イヤホンも持っているので、アンドロイド側からノイズキャンセルして音を聞きたいと思ったからです。
残念ながらスマホをUSB接続しても音は出ないしイヤホンのジャックはpcに接続しても対応していないらしく片方しか聞こえないみたいです。
なのでそういった方法があればと思って探しています。
以前やったのですが、リモートデスクトップでもできるのでしょうか?
そこも試してみようと思いますが、ほかにできる方法がありましたら教えてください。
よろしくお願いします。
iPhone用のBlackboxも持ってますのでiPhoneから聞こえる方法もあったら合わせて教えて欲しいです。
お願いします。

Aベストアンサー

使ったことないけど、TeamViewerというアプリを使うと
パソコンの音声を聞けるらしいです。
パソコンのリモートコントロールソフトで、スマホとパソコンの
双方にインストール要。

Q2^0, 2^(-1), 2^(-2), ..., 2^(-n)

指令行の引数に正の整数 n を指定すると, 2^0, 2^(-1), 2^(-2), ..., 2^(-n) を順に各行に出力していくプログラムで、 n が大きな値になっても,小数点以下100桁までほ正確に結果を出力するようにしたいのですが、どうしたらよいでしょか?

Aベストアンサー

BigDecimalを使っては。

参考URL:http://java.sun.com/j2se/1.4.2/docs/api/java/math/BigDecimal.html

Qアンドロイドのwifi接続について

こんにちは、アンドロイドのwifi接続について質問させていただきます。
先週自宅でアンドロイドのwifi接続しようとおもってELECOMのLAN-WH300N/DR無線ルーターを購入しました。自宅で接続し、IPhone3とIPhone4sはwifi接続できましたが、なぜかアンドロイド端末(SoftBank 003P)が接続できません。購入した量販店に電話できいたですが、ちゃんとした答えもらえなかった、購入したルーターはアンドロイドも対応してるってのはいわれました。端末のほう店にもっていって店のwifi接続使えるから端末も問題ないようです。端末の画面上は使えるwifi接続のリストに自宅のwifiは表示されたり、されなかったりしています。表示されても電波ほぼない状態です。(すぐ近くにルーターおいてあるから、電波届かないことはないと思います)
ルーターの設定か端末の設定おかしいですか?教えてください。お願いします。

Aベストアンサー

androidの特性として以下のような物がありますのでそれを踏まえて
設定のし直しをオススメします。

・バッテリーの持ちを担保するため、接続に失敗すると 受信範囲内にSSIDが
 あっても再接続を一定時間(5分?)行わない

・「切断」を選ぶと接続設定が消去される、再設定をしないと接続できない

名前が表示された時に「接続履歴あり」になっているようですとおそらく
 接続プロファイルの設定をミスっています。
 切断を選び設定を消去して電波状態を確認しましょう。

無線ものの簡単なポイントとしては「近づけすぎない」、電波発信源だと掴みが悪い
可能性がありますので障害物なしで1~3mぐらいの位置で設定を試みます。
その際、IEEE802.11nに対応しているルーターのようですのでセキュリティに
WPA/WPA2 PSKを選びましょう。
WEPとかだと速度が低下しつながりにくくなります。

それでもダメならばAndroidの標準機能ではなくplayから無線管理アプリ
をダウンロードして設定してみる。

それでもダメ、無線電波も悪いようならルーターを再起動してみる。

androidの特性として以下のような物がありますのでそれを踏まえて
設定のし直しをオススメします。

・バッテリーの持ちを担保するため、接続に失敗すると 受信範囲内にSSIDが
 あっても再接続を一定時間(5分?)行わない

・「切断」を選ぶと接続設定が消去される、再設定をしないと接続できない

名前が表示された時に「接続履歴あり」になっているようですとおそらく
 接続プロファイルの設定をミスっています。
 切断を選び設定を消去して電波状態を確認しましょう。

無線ものの簡単なポイントとしては...続きを読む

Qマウスがinput,textarea,の上にのったときに背景画像を表示させたい

たとえばマウスが上にのったときに色を変えるには下のソースを使ってるんですが、
<input type="submit" name="submit" value="DELETE"onmouseover="this.style.backgroundColor='#ffcee7'"
onmouseout="this.style.backgroundColor='#FFFFFF'">
背景画像を表示させたいときはどうやったらいいですか?
おねがいします。

Aベストアンサー

<input type="submit" name="submit" value="DELETE" onmouseover="this.style.backgroundImage ='url(******)'" onmouseout="this.style.backgroundImage='url()'">

*****には画像へのパスを記述してください。
これでいくはず。
ってか、こうゆうことをしたいんすよね?

Q4月以降のアンドロイドによるネット接続

再びアンドロイドについて質問させていただきます。windowsXPのサポートが4月に終了しますが、アンドロイドはそのような影響を受けずにインターネットに接続することができるのでしょうか? ウィルスなども大丈夫か心配です。何分、アンドロイドについての知識が無いものでして……アドバイスをよろしくお願いいたします。

Aベストアンサー

XPとアンドロイドは別物ですし、四月以降にネットにウィルスが蔓延するという意味ではありません。ネット上には今でもウィルスが飛び交っているし、サイトには危ないサイトもいっぱいありますね。マイクロソフトはXPのために今までXPをの穴を狙ってくる敵に対して入口をふさいで来たのです。でももう10年もそれを続けてきたので、ふさぐ穴も無く、むしろピッキングしやすい玄関やねじ式の窓を塞がないと今の侵入者には太刀打ちできない状態にまでなったのです。
でもその玄関や窓がある前提でソフトがつくられているため、これを塞ぐとほかの機能も出入りできなくなってしまうのです。WIN7やWIN8のように最新型の電子鍵とかの玄関には変更できないのです。そこでこれ以上は無理ということでサポートを終了し、もっと安全なWIN7や8にしてくださいと言っているのです。
で、ネットの世界にはXPだけではなくMacやAndoroidを狙った専用の危険も存在しています。ただOSが新しい事でそれなりの仕組みが施されています。だからある程度はXPより安全です。
でもXPを狙っていた犯人がAndoroidを狙うようになればそれも完全ではありませんし、今でもAndroidのストアはウィルスの巣窟と言われています。それに対抗する手段は殆ど持たないというのがAndroidなのです。
Appleに関しては仕様を公開してないのでウィルスは作りにくいと言われていますが、一度作られるとWindowsとちがいほかのメーカーでは対処できなくなります。Appleだけがそれができるのであり、逆にそれが足かせになります。下手をすると新しいMacが出るまで放置ということも考えられるのです。
実際Appleはウィルスの被害を隠していた例もあります。つまり安全なPCなどこの世に無いと思っていればよいと思います。

XPとアンドロイドは別物ですし、四月以降にネットにウィルスが蔓延するという意味ではありません。ネット上には今でもウィルスが飛び交っているし、サイトには危ないサイトもいっぱいありますね。マイクロソフトはXPのために今までXPをの穴を狙ってくる敵に対して入口をふさいで来たのです。でももう10年もそれを続けてきたので、ふさぐ穴も無く、むしろピッキングしやすい玄関やねじ式の窓を塞がないと今の侵入者には太刀打ちできない状態にまでなったのです。
でもその玄関や窓がある前提でソフトがつくられてい...続きを読む

Q画面の表示位置を指定させて表示させたいのですが、カクカクさせずに表示さ

画面の表示位置を指定させて表示させたいのですが、カクカクさせずに表示させるにはどうしたらよいでしょうか?

下記書き方だと一度普通に表示されて、それから移動するみたいで、
一瞬、画面がカクカクしてしまいます。

初めから、移動させた状態で画面を表示させるには、どうしたらよいでしょうか?

<body onload="init();">
<script type="text/javascript">
function init(){
window.scrollTo("0","200");
}
</script>

Aベストアンサー

> なるべくスクロールさせたくない
ANo.3で回答したとおり、一度普通に表示されてから移動するのは正常な動作ですので、この仕様を変更することはできません。


> 予め画像を読み込む処理
画像プリロードによってやりたかったのは、あらかじめ画像サイズを取得することではないのですか?そう、解釈してANo.5は回答しました。


> スクロールしかない場合は、なるべく目立たないようにしたい
1.bodyの高さをあらかじめ適当なもの(長め)に設定する。
2.該当座標に移動する。
3.onLoad処理で、bodyの高さを本来のものにする。

<body onload="init();">
<script type="text/javascript">
document.body.style.height="2000px";
window.scrollTo("0","200");
function init(){
document.body.style.height="auto";
}
</script>

カクカクというのが分からなかったのでいろいろ書きましたが、ひとまず、このようにすれば、htmlレンダリング前に座標は移動できると思います。(JSをbodyの直前か先頭に書くことが前提)もしくは、jQueryのready()で指定すれば、こんな小細工はいらなかったような気がしますが、jQueryは本題ではないので割愛します。

> なるべくスクロールさせたくない
ANo.3で回答したとおり、一度普通に表示されてから移動するのは正常な動作ですので、この仕様を変更することはできません。


> 予め画像を読み込む処理
画像プリロードによってやりたかったのは、あらかじめ画像サイズを取得することではないのですか?そう、解釈してANo.5は回答しました。


> スクロールしかない場合は、なるべく目立たないようにしたい
1.bodyの高さをあらかじめ適当なもの(長め)に設定する。
2.該当座標に移動する。
3.onLoad処理で、bodyの高さを本来のも...続きを読む


人気Q&Aランキング

おすすめ情報