サイトトップ

Director Flash 書籍 業務内容 プロフィール

Flash ActionScript 3.0 Reference

◎01 Mathクラス

☆08 ★数値を指定桁数で丸めたい

解説
数値の小数点以下の端数の処理には、切捨てと四捨五入、および切上げがあります。Mathクラスはそれぞれの演算について、Math.floor()Math.round()ならびにMath.ceil()メソッドを備えています。

Mathクラス
パッケージ トップレベル
継承 Math→Object
ceil()メソッド ASタイプ M
ランタイムバージョン AIR 1.0/Flash Player 9
文法 Math.ceil(value:Number):Number
意味 指定された数値の小数点以下を切上げて、整数値を返します。
引数

value:Number ― 小数点以下を切上げる数値。

戻り値 引数に指定された数値以上のもっとも小さい整数。
floor()メソッド ASタイプ M
ランタイムバージョン AIR 1.0/Flash Player 9
文法 Math.floor(value:Number):Number
意味 指定された数値の小数点以下を切捨てて、整数値を返します。
引数

value:Number ― 小数点以下を切捨てる数値。

戻り値 引数に指定された数値以下のもっとも大きい整数。
round()メソッド ASタイプ M
ランタイムバージョン AIR 1.0/Flash Player 9
文法 Math.round(value:Number):Number
意味 指定された数値の小数点以下を四捨五入して、整数値を返します。
引数

value:Number ― 小数点以下を四捨五入する数値。

戻り値 引数に指定された数値の小数点以下が0.5以上のときは数値を切上げ、0.5未満の場合には小数点以下を切捨てた整数。

※マイナスの数値の演算結果
正の数値では、その絶対値が大きいほど値は大きくなります。しかし、負の数値については、絶対値は小さい方が値は大きいので、注意が必要です。たとえば、以下の結果を確かめてみましょう。

trace(Math.ceil(-1.9));   // 出力: -1
trace(Math.floor(-1.1));   // 出力: -2
trace(Math.round(-1.5));   // 出力: -1

3つのメソッドのいずれも、小数点以下の端数を処理対象とします。つまり、小数点以下の桁数を指定して、切上げ・切捨て・四捨五入することはできません。桁数を定めて処理したいときは、数値に一旦10の累乗を掛けてメソッドを実行してから、改めて同じ数で割り算します。たとえば、指定された数値の小数第3位以下を切捨てたいときは、つぎのように計算します。

trace(Math.floor(12.3456*100)/100);   // 出力: 12.34

記述例
以下のスクリプト01-08-001には、フレームアクションに数値を小数点以下の任意の桁数で切捨てる関数xRoundDown()が定義してあります。引数には、切捨てる演算対象の数値と小数点以下の桁数の整数を指定します。関数は指定された桁より後の端数を切捨て、小数点以下指定桁数までの数値を返します。たとえば、数値の小数第3位以下を切捨てて、第2位までの数値にしたいときは、関数xRoundDown()をつぎのように呼出します。

trace(xRoundDown(12.3456, 2));   // 出力: 12.34

スクリプト01-08-001■小数点以下を指定桁数で切捨て

// フレームアクション
function xRoundDown(nValue:Number, nDigits:int):Number {
  var nMultiplier:Number = Math.pow(10, nDigits);
  var nResult:Number = Math.floor(nValue * nMultiplier) / nMultiplier;
  return nResult;
}

なお、Math.pow()メソッドは、指定した数値の累乗を求めます。このメソッドについては、「座標を距離と角度で扱いたい」をご参照ください。

→関連項目
座標を距離と角度で扱いたい


作成者: 野中文雄
ドラフト作成: 2009年5月20日


Copyright © 2001-2009 Fumio Nonaka.  All rights reserved.