- ベストアンサー
javascriptで四捨五入して小数点第1位表示で計算値が10になった場合、10.0と表示したい0表示にする方法
利率計算を作成していて、問題が発生したため、質問します。 以下ような計算式で、四捨五入し、小数点第1位表示まで 出来たのですが、計算値が整数になってしまった場合、 10と表示されます。これを何とか、整数値になった場合、 10.0と表示させたいのですが、良い方法があれば、 ご伝授いただければと思います。 ritu = Math.round( ritu * 1000 ) / 10; //小数点第1位表示四捨五入して代入
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ritu1 = Math.round(ritu*1000)/10; ritu2 = Math.floor(ritu1); ritu = ritu2 + "." + Math.floor((ritu1-ritu2)*10);
その他の回答 (3)
- UKY
- ベストアンサー率50% (604/1207)
> bの値がaよりも大きい値の時に、".0"表示ができませんでした。 a に小数部分があるかを判断するために、a が 1 で割り切れるかどうかを調べているわけですから、b の値を 1 以外に変えてしまっては意味がありません。 そもそも 1 を変数として宣言すること自体不要で、 <script type="text/javascript"> ritu = Math.round(ritu * 1000) / 10; if (ritu % 1 == 0) ritu += ".0"; document.write(ritu); </script> で十分です。
お礼
回答有難うございます。 #3様のスクリプトでうまくいきました。 次回この方法で試させていただこうと思います。 有難うございました。
- the845t
- ベストアンサー率33% (246/743)
<script> a = 3;//aの値が少数だと下の条件を無視。 b = 1;//割り切れる数字の場合のみ下の条件を通過 if(!(a % b)){ a += ".0"; } document.write(a); </script> #1さんの補足 たとえばこんな感じだね。 ただ、このままだと数値が文字列になってしまうと思うので、 再び数値として利用するのであれば、ほかの変数に入れておくか、 再び数値として指定する必要があります。
補足
回答有難うございます。 教えていただいた方法でやっていますが、 うまくいかないところがあるので、教えて下さい。 if(!(a % b)){ ですが、余りがなければ、".0"を付け加えて いますが、bの値がaよりも大きい値の時に、 ".0"表示ができませんでした。何か良い方法 ありますか?
- akira212
- ベストアンサー率24% (75/308)
たぶん。もっと良い方法があると思うんですが、急ぎとの事なので、応急処置の方法を・・・ 数値が10で割り切れた場合に「.0」を後ろに表示させる方法で、かいくぐってみてはいかがでしょうか? 本当に、応急処置で申し訳ない。
お礼
回答有難うございます。 ヒントをいただいて、助かりました。
お礼
回答有難うございます。 書いていただいた方法で、すぐできました。 本当に有難うございました。