丸め関数
このドキュメントは system.functions システムテーブルから自動生成されています。
ceil
導入バージョン: v1.1.0
floor と同様ですが、x 以上となる値のうち最小の丸め結果を返します。
丸めによってオーバーフローが発生する場合 (例: ceiling(255, -1)) 、結果は未定義となります。
構文
別名: ceiling
引数
x— 丸める値。Float*またはDecimal*または(U)Int*N— 省略可能。丸める小数点以下の桁数。デフォルトは 0 で、この場合は整数への丸めを意味します。負の値も指定できます。(U)Int*
戻り値
x と同じ型の丸められた数値を返します。Float* または Decimal* または (U)Int*
例
基本的な使い方
負の精度指定
floor
導入バージョン: v1.1.0
x 以下で最大となる、1 / 10 * N の倍数への丸め結果を返します。1 / 10 * N が正確に表現できない場合は、対応するデータ型で表現可能な最も近い数値を返します。
整数引数に対しては、N に負の値を指定することで丸めを行えます。
N が 0 以上の場合、この関数は x をそのまま返します。
丸めによってオーバーフローが発生した場合 (例: floor(-128, -1)) 、結果は未定義です。
構文
引数
x— 丸め対象の値。Float*またはDecimal*または(U)Int*N— 省略可能。丸める小数点以下の桁数。デフォルトは 0 で、この場合は整数への丸めを意味します。負の値も指定可能です。(U)Int*
戻り値
x と同じ型の、丸め後の数値を返します。Float* または Decimal* または (U)Int*
例
使用例
精度が負の場合
round
導入バージョン: v1.1.0
値を、小数点以下の指定した桁数 N に丸めます。
N > 0の場合、小数点より右側を丸めます。N < 0の場合、小数点より左側を丸めます。N = 0の場合、最も近い整数に丸めます。
この関数は、指定した桁の位で最も近い数値を返します。
入力値が2つの隣接する数値から等距離にある場合、Float* 型の入力に対しては銀行家の丸めを使用し、その他の数値型 (Decimal*) に対してはゼロから遠ざかる方向に丸めます。
丸めによってオーバーフローが発生する場合 (例: round(255, -1)) 、結果は未定義です。
構文
引数
戻り値
x と同じ型の丸められた数値を返します。Float* または Decimal* または (U)Int*
例
Float 型の入力
小数入力
roundAge
導入バージョン: v1.1.0
人の年齢を表す数値を受け取り、標準的な年齢区分と比較し、その区分に該当する範囲の上限または下限の値を返します。
age < 1の場合、0を返します。1 ≤ age ≤ 17の場合、17を返します。18 ≤ age ≤ 24の場合、18を返します。25 ≤ age ≤ 34の場合、25を返します。35 ≤ age ≤ 44の場合、35を返します。45 ≤ age ≤ 54の場合、45を返します。age ≥ 55の場合、55を返します。
構文
引数
返り値
age が属する年齢範囲のうち、下限または上限の年齢を返します。UInt8
例
使用例
roundBankers
導入バージョン: v20.1.0
数値を指定した小数桁数 N に丸めます。
丸める値がちょうど 2 つの値の中間にある場合、この関数は banker's rounding と呼ばれる丸め方法を使用します。これは IEEE 754 で定義されている浮動小数点数のデフォルトの丸め方法です。
N > 0の場合、小数点以下N桁に丸めますN < 0の場合、小数点より左側 (整数部) をNの位で丸めますN = 0の場合、最も近い整数に丸めます
- 丸める値がちょうど 2 つの値の中間にある場合、指定した小数桁において最も近い偶数の桁に丸められます。
例:
3.5は4に切り上げ、2.5は2に切り下げます。 round関数は、浮動小数点数に対して同じ丸め方を行います。roundBankers関数は整数に対しても同様の丸めを行います。例えばroundBankers(45, -1) = 40となります。- それ以外の場合、この関数は最も近い整数に丸めます。
banker's rounding を使用すると、数値を合計または減算した結果に対する丸めの影響を小さくできます。
例えば、数値 1.5, 2.5, 3.5, 4.5 を異なる丸め方で合計すると次のようになります:
- 丸めなし:
1.5 + 2.5 + 3.5 + 4.5 = 12 - Banker's rounding:
2 + 2 + 4 + 4 = 12 - 四捨五入で最も近い整数に丸める場合:
2 + 3 + 4 + 5 = 14
構文
引数
戻り値
banker's rounding (銀行家の丸め) 手法で丸められた値を返します。(U)Int* または Decimal* または Float*
例
基本的な使い方
roundDown
導入バージョン: v20.1.0
数値を、指定された配列内の要素のうちそれ以下で最大の値に切り下げます。 値が配列の下限値より小さい場合は、その下限値が返されます。
構文
引数
num— 切り捨てる数値。(U)Int*またはDecimal*またはFloat*arr—numを切り捨てる先となる要素の配列。Array((U)Int*)またはArray(Float*)
戻り値
arr のいずれかの要素に切り捨てられた数値を返します。値が最小の境界値より小さい場合は、その最小の境界値が返されます。(U)Int* または Float*
例
使用例
roundDuration
導入バージョン: v1.1.0
数値を、よく使用される次の期間の集合 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000 のうち、元の値以下で最も近い値に切り捨てます。
数値が 1 未満の場合は 0 を返します。
構文
引数
戻り値
num < 1 の場合は 0 を返します。そうでなければ、次のいずれかを返します: 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000。UInt16
例
使用例
roundToExp2
導入バージョン: v1.1.0
数値を、直前の (非負整数の) 2 の冪に切り下げます。
数値が 1 未満の場合は 0 を返します。
構文
引数
戻り値
num を、それ以下で最大の (2 の非負整数乗である) 値に切り捨てて返します。num < 1 の場合は 0 を返します。(U)Int* または Float*
例
使用例
trunc
導入バージョン: v1.1.0
floor に似ていますが、x の絶対値以下で、絶対値が最大となるように丸めた数値を返します。
構文
エイリアス: truncate
引数
戻り値
x と同じ型の丸められた数値を返します。Float* または Decimal* または (U)Int*
使用例
基本的な使い方