本ページには広告が含まれています。
指定した位置で四捨五入します。偶数丸めをする場合は、ROUND関数 (スクリプト関数)を使います。
- 構文
- Double = roundOff( num, digit )
- 引数
- num 必須
- 数値
- digit 省略可
- 四捨五入する位置(マイナスで整数方向)
- 戻り値
- 四捨五入した値
プログラム
//////////////////////////////////////////////////
// 【引数】
// num : 数値
// digit : 四捨五入する位置(マイナスで整数方向)
// 【戻り値】
// 四捨五入した値
//////////////////////////////////////////////////
FUNCTION roundOff(num, digit = 0)
DIM sign = sign(num)
num = ABS(num)
DIM offset = POWER(10, digit)
DIM n = num * offset - INT(num * offset)
RESULT = sign * IIF(n >= 0.5, CEIL(num * offset) / offset, INT(num * offset) / offset)
FEND
//////////////////////////////////////////////////
// 【引数】
// expr : 評価する式
// truepart : 評価した式がTrueのときに返す値
// falsepart : 評価した式がFalseのときに返す値
// 【戻り値】
// truepart : 評価した式がTrueのとき、falsepart : 評価した式がFalseのとき
//////////////////////////////////////////////////
FUNCTION IIF(expr, truepart, falsepart)
IFB EVAL(expr) THEN
RESULT = truepart
ELSE
RESULT = falsepart
ENDIF
FEND
//////////////////////////////////////////////////
// 【引数】
// num : 符号を求める数値
// 【戻り値】
// 1 : 正の数、0 : ゼロ、-1 : 負の数、ERR_VALUE : それ以外
//////////////////////////////////////////////////
FUNCTION sign(num)
SELECT TRUE
CASE !CHKNUM(num)
RESULT = ERR_VALUE
CASE num > 0
RESULT = 1
CASE num = 0
RESULT = 0
CASE num < 0
RESULT = -1
SELEND
FEND
解説
- 2行目
- 数値の符号をsignに代入。
DIM sign = sign(num)
- 3行目
- numに符号を取った数値を代入。
num = ABS(num)
- 4行目
- CEIL・INT関数で切り上げ・切り捨て処理する位置を小数第一位に持ってくるために掛ける値(オフセット)。CEIL・INT関数が小数第一位での端数処理しかできないためずらす。
DIM offset = POWER(10, digit)
- 5行目
- 小数点以下をnに代入。
DIM n = num * offset - INT(num * offset)
- 6行目
- nが0.5以上なら切り上げ、0.5未満なら切り捨てる。4行目でずらした分で割りもとの値に戻し、符号もつける。
RESULT = sign * IIF(n >= 0.5, CEIL(num * offset) / offset, INT(num * offset) / offset)
位置
桁数で指定された位置での概数を求めます。桁数の一つ下の桁で四捨五入。小数第二位までの概数を求めるには、「2」を指定します。
使い方
小数第3位までの概数。
PRINT roundOff(1234.5678, 3)
- 結果
1234.568
整数(一の位までの概数)にする。
PRINT roundOff(1234.5678, 0)
- 結果
1235
百の位までの概数。
PRINT roundOff(1234.5678, -2)
- 結果
1200
関連記事
- ABS関数 (スクリプト関数)
- 引数の絶対値を求めます。
- ARCCOS関数 (スクリプト関数)
- 引数の逆余弦を求めます。
- CEIL関数 (スクリプト関数)
- 正の方向へ切り上げた数値を返します。
- LN関数 (スクリプト関数)
- 自然対数を求めます。
- LOGN関数 (スクリプト関数)
- 常用対数を求めます。
- ZCUT関数 (スクリプト関数)
- マイナス値を0にして返します。プラス値はそのままの値を返します。
- isOdd関数 (自作関数)
- 引数に指定した数値が奇数かどうかを調べます。奇数ならばTrue、それ以外の数値はFalse、文字列はエラー値を返します。
- radToDeg関数 (自作関数)
- 弧度法(Radian)を度数法(Degree)に変換します。度数法を弧度法に変換するにはDegToRad関数を使います。
- ARCSIN関数 (スクリプト関数)
- 引数の逆正弦を求めます。
- EXP関数 (スクリプト関数)
- 自然指数関数を求めます。