• ベストアンサー

計算結果の処理について

入力された数値に従って、計算をするというスクリプトを作成しています。 計算結果が2.27272727…と続くような場合が出てくるので、 小数点以下第何位を四捨五入するとか、第何位以下を切り捨てるといった数学関数はありますか? 調べてみても、以下3つぐらいしかありませんでした。 Math.ceil() Math.floor() Math.round() 宜しくお願いします。

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

  • ベストアンサー
  • arata
  • ベストアンサー率49% (139/279)
回答No.1

小数点以下第3位の四捨五入や切り捨てなら x = Math.round( y * 100 ) / 100; x = Math.floor( y * 100 ) / 100; と言うように、小数点の位置を変えて、 計算してから元に戻してやれば、OKですよ。

garfield
質問者

お礼

簡単で、かつ初心者の私にもよ~く解かる回答を頂き、ありがとうございました。 なんか、してやられた! という感じで、感激してしまいました。今後とも宜しくお願いいたします。

その他の回答 (1)

  • gokkun
  • ベストアンサー率47% (115/244)
回答No.2

>小数点以下第何位を四捨五入するとか、 >第何位以下を切り捨てるといった数学関数はありますか? ないと思います。 力技ですが次のようにすれば求めることが出来ます。 (xを小数点以下第n位で四捨五入する場合) Math.round(x*Math.pow(10,n-1))/Math.pow(10,n-1)

garfield
質問者

お礼

力強く“ない”と言って頂き、嬉しかったです。(私自身も上司に言い張ってましたから)けれども、抜け道があることも知りました。 ありがとうございました。また、宜しくお願いします。

関連するQ&A

  • javascriptで小数点以下2捨3入の記述方法は?

     javascriptで小数点以下四捨五入(Math.round)切り上(Math.ceil) 切下げ(Math.floor)はありますが、事情があって2捨3入、3捨4入が 必要となりました。どこで調べても見つかりません。どなたか記述方法 を教えてください。 また小数点以下第1位、第2位を特定できる方法もありましたら あわせて教えていただければ幸いです。

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

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

  • EXCELでの四捨五入の後の計算方法

    EXCELで小数点以下第何位までかを指定したり、ROUNDを使ったりして表記したのち、その第何位かまでで四捨五入された数値をそのまま次の計算に使いたいのですが、どうやら元の数値が使われているようです。四捨五入処理された数値が次の計算に使われる方法、どなたかご存知の方どうかご教示お願いします。

  • Access2000 小数第3位で四捨五入

    質問させていただきます。 Access2000で以下の計算式を作りました。 金額 = Round(重量 × 単価,2) これは「金額」を小数第3位で四捨五入します。 ところが以下の数値の場合、正しく計算してくれません。 764.00 = 0.479 × 1595 本当は 764.005 だから 小数第3位で四捨五入すると 764.01 になると思うのですが・・・。 ちなみに以下の値では・・・ 754.44 = 0.473 × 1595 (754.435だから小数第3位で正しく四捨五入されています)。 やり方が悪いのでしょうか?それとも他に正しく計算できる方法があるのでしょうか?

  • エクセルの関数。お願いします!

    任意の桁数で四捨五入するROUND関数についてお願いします。 A1「5678.492」の数値。 (ア)小数点以下を四捨五入しなさい。 (イ)1の位を四捨五入しなさい。 =ROUND(A1,○)の○には何が入るんでしょうか?

  • 関数スコープを抜けると初期化されてしまう

    小数点第X位で四捨五入する。使いまわす関数を作り複数の計算式で利用しようと思ったのですが変数roundNumの中身が関数が終了すると関数内の小数点第一位までという処理がなかったことになり、結局元の小数点をいくつでも出す状態に戻ってしまいます。 この理由は関数スコープがあるのでroundNumが同じ名前でも別変数になっているからでしょうか? それとも関数スコープを抜けた瞬間にこの除法は破棄されてしまうからでしょうか? このような処理をどうやって関数化しますか?関数化自体を諦めて同じコードをコピペしまくるしかないのでしょうか? var roundNum; (function () { function round(roundNum) { var decimalPoint = 1 ; roundNum = Math.floor( roundNum * Math.round( 10, decimalPoint ) ) / Math.round( 10, decimalPoint ) ; } ~

  • 計算機の使用法

    計算機を使った計算のやり方について質問します。 答えを小数点以下第5位を四捨五入した小数点第4位までの小数 で表せ。という問題があって、答えは 2/3√3になります。 こういう場合は2を3√3の計算した数値の小数第5位を四捨五入したもので割ればいいのですか?それとも、小数第10位くらいまで計算した値で割って、最終的に第5位を四捨五入すればいいのでしょうか? この場合はいいですが、複雑な計算になると、四捨五入したものどうしをたくさん計算すれば最終的な答えにだいぶ誤差が生まれる気がしまて。すみません単純な質問をして。

  • エクセルの小数点を消す

    とある割合をかけて算出する計算式の答えが、小数点以下8ケタくらいの数字になりました。 ROUNDとかの関数を使えば、四捨五入されるのは知っていたのですが、それを忘れてしまったため、全ての答えに小数点以下の数字が入ってしまいました。 答えから、小数点以下を消したい(できれば四捨五入して)のですが、1コ1コ消していくのしかないのでしょうか??

  • エクセルでの計算式 0.5単位に

    エクセルの計算式で小数点第二位以下の数値を 0.5単位に四捨五入みたいな感じにする計算式ってありますか・・・? 例)0.27→0.5   56.78→57.0   126.23→126.0   5.256→5.5 という感じにですが、 一応切り捨ての場合は「=FLOOR(A1,0.5)」(セルA1の変換) みたいですがこれのどっかを書き換えればいいんでしょうか? よろしくお願いします。

  • エクセルの表示形式で、10の桁で四捨五入した値を表示させるには?

    エクセルの表で、数字を四捨五入する方法にはROUND関数がありますが、関数で変換すると値そのものが変わってしまいます。 値はそのままで四捨五入した数字で表す方法を教えてください。 小数や一桁の整数までの四捨五入であれば、セルの書式設定・表示形式を「数値」にして小数点以下の桁数を指定してやれば簡単ですが、10の桁以上で丸めて表示させる方法を探しています。 例えば、9876→9880と表示させる書式設定の方法です。 値は計算に使うので、ROUND関数で実際に丸めたくないのです。 ユーザ定義を組み合わせるなどで、うまくできませんか?

専門家に質問してみよう