- ベストアンサー
計算結果の処理について
入力された数値に従って、計算をするというスクリプトを作成しています。 計算結果が2.27272727…と続くような場合が出てくるので、 小数点以下第何位を四捨五入するとか、第何位以下を切り捨てるといった数学関数はありますか? 調べてみても、以下3つぐらいしかありませんでした。 Math.ceil() Math.floor() Math.round() 宜しくお願いします。
- garfield
- お礼率66% (26/39)
- JavaScript
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
小数点以下第3位の四捨五入や切り捨てなら x = Math.round( y * 100 ) / 100; x = Math.floor( y * 100 ) / 100; と言うように、小数点の位置を変えて、 計算してから元に戻してやれば、OKですよ。
その他の回答 (1)
- gokkun
- ベストアンサー率47% (115/244)
>小数点以下第何位を四捨五入するとか、 >第何位以下を切り捨てるといった数学関数はありますか? ないと思います。 力技ですが次のようにすれば求めることが出来ます。 (xを小数点以下第n位で四捨五入する場合) Math.round(x*Math.pow(10,n-1))/Math.pow(10,n-1)
お礼
力強く“ない”と言って頂き、嬉しかったです。(私自身も上司に言い張ってましたから)けれども、抜け道があることも知りました。 ありがとうございました。また、宜しくお願いします。
関連する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位表示四捨五入して代入
- ベストアンサー
- JavaScript
- EXCELでの四捨五入の後の計算方法
EXCELで小数点以下第何位までかを指定したり、ROUNDを使ったりして表記したのち、その第何位かまでで四捨五入された数値をそのまま次の計算に使いたいのですが、どうやら元の数値が使われているようです。四捨五入処理された数値が次の計算に使われる方法、どなたかご存知の方どうかご教示お願いします。
- 締切済み
- Excel(エクセル)
- 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,○)の○には何が入るんでしょうか?
- ベストアンサー
- Excel(エクセル)
- 関数スコープを抜けると初期化されてしまう
小数点第X位で四捨五入する。使いまわす関数を作り複数の計算式で利用しようと思ったのですが変数roundNumの中身が関数が終了すると関数内の小数点第一位までという処理がなかったことになり、結局元の小数点をいくつでも出す状態に戻ってしまいます。 この理由は関数スコープがあるのでroundNumが同じ名前でも別変数になっているからでしょうか? それとも関数スコープを抜けた瞬間にこの除法は破棄されてしまうからでしょうか? このような処理をどうやって関数化しますか?関数化自体を諦めて同じコードをコピペしまくるしかないのでしょうか? var roundNum; (function () { function round(roundNum) { var decimalPoint = 1 ; roundNum = Math.floor( roundNum * Math.round( 10, decimalPoint ) ) / Math.round( 10, decimalPoint ) ; } ~
- ベストアンサー
- JavaScript
- エクセルの小数点を消す
とある割合をかけて算出する計算式の答えが、小数点以下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関数で実際に丸めたくないのです。 ユーザ定義を組み合わせるなどで、うまくできませんか?
- ベストアンサー
- オフィス系ソフト
お礼
簡単で、かつ初心者の私にもよ~く解かる回答を頂き、ありがとうございました。 なんか、してやられた! という感じで、感激してしまいました。今後とも宜しくお願いいたします。