• ベストアンサー

javascriptで四捨五入して小数点第1位表示で計算値が10になった場合、10.0と表示したい0表示にする方法

利率計算を作成していて、問題が発生したため、質問します。 以下ような計算式で、四捨五入し、小数点第1位表示まで 出来たのですが、計算値が整数になってしまった場合、 10と表示されます。これを何とか、整数値になった場合、 10.0と表示させたいのですが、良い方法があれば、 ご伝授いただければと思います。 ritu = Math.round( ritu * 1000 ) / 10; //小数点第1位表示四捨五入して代入

質問者が選んだベストアンサー

  • ベストアンサー
  • picchio
  • ベストアンサー率100% (2/2)
回答No.3

ritu1 = Math.round(ritu*1000)/10; ritu2 = Math.floor(ritu1); ritu = ritu2 + "." + Math.floor((ritu1-ritu2)*10);

sara555
質問者

お礼

回答有難うございます。 書いていただいた方法で、すぐできました。 本当に有難うございました。

その他の回答 (3)

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

> 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> で十分です。

sara555
質問者

お礼

回答有難うございます。 #3様のスクリプトでうまくいきました。 次回この方法で試させていただこうと思います。 有難うございました。

  • the845t
  • ベストアンサー率33% (246/743)
回答No.2

<script> a = 3;//aの値が少数だと下の条件を無視。 b = 1;//割り切れる数字の場合のみ下の条件を通過 if(!(a % b)){ a += ".0"; } document.write(a); </script> #1さんの補足 たとえばこんな感じだね。 ただ、このままだと数値が文字列になってしまうと思うので、 再び数値として利用するのであれば、ほかの変数に入れておくか、 再び数値として指定する必要があります。

sara555
質問者

補足

回答有難うございます。 教えていただいた方法でやっていますが、 うまくいかないところがあるので、教えて下さい。 if(!(a % b)){ ですが、余りがなければ、".0"を付け加えて いますが、bの値がaよりも大きい値の時に、 ".0"表示ができませんでした。何か良い方法 ありますか?

  • akira212
  • ベストアンサー率24% (75/308)
回答No.1

たぶん。もっと良い方法があると思うんですが、急ぎとの事なので、応急処置の方法を・・・ 数値が10で割り切れた場合に「.0」を後ろに表示させる方法で、かいくぐってみてはいかがでしょうか? 本当に、応急処置で申し訳ない。

sara555
質問者

お礼

回答有難うございます。 ヒントをいただいて、助かりました。