メインコンテンツまでスキップ
メインコンテンツまでスキップ

四捨五入関数

floor

x以下の最大の丸めた数を返します。 丸めた数は、1 / 10 * Nの倍数であるか、1 / 10 * Nが正確でない場合は適切なデータ型の最も近い数です。

整数引数は、負のN引数で丸めることができ、非負のNでは関数はxを返す、すなわち何もしません。

丸めによってオーバーフローが発生した場合(例えばfloor(-128, -1))、結果は未定義です。

構文

パラメータ

  • x - 丸める値。 Float*Decimal*、または(U)Int*
  • N(U)Int*。 デフォルトはゼロで、整数に丸めることを意味します。 負の値にすることができます。

返される値

xと同じタイプの丸められた数。

クエリ:

結果:

クエリ:

結果:

ceiling

floorのように、x以上の最小の丸めた数を返します。

構文

エイリアス: ceil

truncate

floorのように、xの絶対値以下の最大の絶対値を持つ丸めた数を返します。

構文

エイリアス: trunc

クエリ:

round

指定された小数点以下の桁数に値を丸めます。

関数は指定された位の最も近い数を返します。 入力値が隣接する2つの数の間の距離が等しい場合、関数はFloat*入力に対して銀行の丸めを使用し、他の数値型(Decimal*)にはゼロから離れる方向に丸めます。

構文

引数

  • x — 丸める数。 Float*Decimal*、または(U)Int*
  • N — 丸める小数点以下の桁数。 整数。 デフォルトは0です。
    • N > 0の場合、関数は小数点の右側に丸めます。
    • N < 0の場合、関数は小数点の左側に丸めます。
    • N = 0の場合、関数は次の整数に丸めます。

返される値:

xと同じタイプの丸められた数。

Float入力の例:

Decimal入力の例:

末尾のゼロを保持するには、設定output_format_decimal_trailing_zerosを有効にします:

最も近い数に丸める例:

銀行の丸め:

関連情報

roundBankers

指定された小数位置に数を丸めます。

丸める数が2つの数の間の中間の場合、関数は銀行の丸めを使用します。 銀行の丸めは、分数の数値を丸める方法です。 丸める数が2つの数の間の中間の場合、指定された小数位置で最も近い偶数桁に丸められます。 たとえば、3.5は4に、2.5は2に丸められます。 これはIEEE 754で定義された浮動小数点数のデフォルトの丸め方法です。 round関数は浮動小数点数に対して同じ丸めを行います。 roundBankers関数は整数も同様に丸めます。たとえば、roundBankers(45, -1) = 40

他のケースでは、関数は数を最も近い整数に丸めます。

銀行の丸めを使用すると、丸めた数がこれらの数の合計または減算の結果に与える影響を減らすことができます。

たとえば、1.5、2.5、3.5、4.5の数字を異なる丸めで合計します:

  • 丸めなし: 1.5 + 2.5 + 3.5 + 4.5 = 12。
  • 銀行の丸め: 2 + 2 + 4 + 4 = 12。
  • 最も近い整数に丸める: 2 + 3 + 4 + 5 = 14。

構文

引数

  • N > 0 — 関数は小数点の右側の指定された位置に数を丸めます。 例: roundBankers(3.55, 1) = 3.6

  • N < 0 — 関数は小数点の左側の指定された位置に数を丸めます。 例: roundBankers(24.55, -1) = 20

  • N = 0 — 関数は数を整数に丸めます。この場合、引数は省略可能です。 例: roundBankers(2.5) = 2

  • x — 丸める数。 Float*Decimal*、または(U)Int*

  • N — 丸める小数点以下の桁数。 整数。 デフォルトは0

    • N > 0の場合、関数は小数点の右側に丸めます。
    • N < 0の場合、関数は小数点の左側に丸めます。
    • N = 0の場合、関数は次の整数に丸めます。

返される値

銀行の丸め方法で丸められた値。

クエリ:

結果:

銀行の丸めの例:

関連情報

roundToExp2

数を受け取ります。数が1未満の場合、0を返します。それ以外の場合、数を最も近い(整数の非負)2の指数に丸めます。

構文

パラメータ

返される値

  • 0num <1\lt 1の場合。 UInt8
  • numを最も近い(整数の非負)2の指数に丸めた数。 UInt/Floatで、入力型と同等です。

クエリ:

結果:

roundDuration

数を受け取ります。数が1未満の場合、0を返します。それ以外の場合、数を一般的に使用される期間のセットから丸めます: 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000

構文

パラメータ

  • num: 一般的な期間のセットのいずれかの数に丸める数。 UInt/Float

返される値

  • 0num <1\lt 1の場合。
  • それ以外の場合、次のいずれか: 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000UInt16

クエリ:

結果:

roundAge

人間の年齢のさまざまな一般的な範囲内の数を受け取り、その範囲内の最大または最小を返します。

構文

パラメータ

  • age: 年齢を年で表す数。 UInt/Float

返される値

  • age<1age \lt 1の場合は0を返します。
  • 1age171 \leq age \leq 17の場合は17を返します。
  • 18age2418 \leq age \leq 24の場合は18を返します。
  • 25age3425 \leq age \leq 34の場合は25を返します。
  • 35age4435 \leq age \leq 44の場合は35を返します。
  • 45age5445 \leq age \leq 54の場合は45を返します。
  • age55age \geq 55の場合は55を返します。

型: UInt8

クエリ:

結果:

roundDown

数を受け取り、指定された配列内の要素に丸めます。値が最小範囲より小さい場合、最小範囲が返されます。

構文

パラメータ

  • num: 丸める数。 Numeric
  • arr: ageを丸めるための要素の配列。 ArrayUInt/Float型の要素。

返される値

  • arr内の要素に丸められた数。値が最小範囲より小さい場合、最小範囲が返されます。 UInt/Float型はarrの型から推測されます。

クエリ:

結果: