Google Apps Script(GAS)を使用して、数値操作を行う際に小数点以下を適切に処理する方法は重要です。
この記事では、GASを活用して数値を切り上げ、切り下げ、または切り捨てる手法について詳しく解説します。
小数点以下の数値を整数に丸める
小数点以下の数値を整数に丸める方法について解説します。
数値の小数点以下を整数に変換する理由や、その実装方法の選択肢について詳しく学んでいきましょう。
1. 「整数に丸める」とは
小数点以下を整数に丸めるとは、与えられた小数の部分を四捨五入や切り捨てなどの方法で、最も近い整数に変換することを指します。
数値をより単純な形に変換するために行われる操作で、特に計算や表現の簡略化、または表示のために利用されます。
2. 小数点以下を整数に変換する理由
小数点以下を整数に変換する理由は、さまざまです。主な理由としては以下が挙げられます。
- 正確な計算: 小数点以下が含まれる数値を計算する際、整数で計算することで誤差を避けることができます。
- 表示の整形: 金額や数量など、整数で表示する必要がある場合に小数点以下を丸めることで、見やすさを向上させることができます。
3. 丸め方法の選択肢
小数点以下を整数に丸める方法には、いくつかの選択肢があります。代表的な方法として以下があります。
メソッド | 動作 |
---|---|
Math.ceil() | 小数点以下を切り上げる |
Math.floor() | 小数点以下を切り下げる |
Math.trunc() | 整数部分を抽出 |
Math.ceilメソッド(切り上げ)
Math.ceilメソッドは、与えられた数値を常にそれ以上の最小の整数に切り上げます。
これにより、数値を大きい方向に整数に丸めることができます。
このメソッドは数学的な切り上げの操作を提供し、主に計算や表示の整形に利用されます。
Math.ceil(数値)
引数 | タイプ | 動作 |
---|---|---|
数値 | Integer | 指定した数値の小数第一位を切り上げます。 |
サンプル1: 切り上げの基本的な例
// 切り上げの基本的な例
let number1 = 7.25;
let roundedUp1 = Math.ceil(number1); // 8
let number2 = 2.8;
let roundedUp2 = Math.ceil(number2); // 3
サンプル2: 金額の切り上げ計算
切り上げは、金額の表示などで特に役立ちます。
たとえば、税込み価格を計算する際に、切り上げを用いて正確な金額を表示することができます。
消費税が11%になった場合を仮定してスクリプトを作成しました。
// 金額の切り上げ計算
let itemPrice = 123;
let taxRate = 0.11;
let totalPrice = itemPrice * (1 + taxRate); // 136.53
let roundedTotalPrice = Math.ceil(totalPrice); // 137
サンプル3: 負の数の切り上げ
Math.ceilメソッドは、与えられた数値をそれ以上の最小の整数に切り上げます。
正の数に対してはそのまま切り上げが行われますが、負の数の場合は数値を絶対値の方向に切り上げます。
// 負の数の切り上げ
let negativeNumber = -5.75;
let roundedNegative = Math.ceil(negativeNumber); // -5
負の数の場合、切り上げは絶対値の方向に行われるため、数値自体が大きくなる方向に丸められます。
これは、切り上げによって数値の絶対値が増加することを意味します。
マイナスの値はゼロ方向に切り上げすることを覚えておきましょう!
Math.floorメソッド(切り下げ)
Math.floorメソッドは、与えられた数値をそれ以下の最大の整数に切り下げます。
floorの解説に入る前に、小数点「切り下げ」と「切り捨て」の違いについて理解しておきましょう。
小数点「切り下げ」と「切り捨て」の違い
切り下げ(Math.floor メソッド)と切り捨て(Math.trunc メソッド)は、数値を整数に丸めるための操作ですが、微妙に異なる振る舞いをします。
- 切り下げは、与えられた数値以下で最大の整数を返す
→正の数では数値を小さくし、負の数では数値を大きくする - 切り捨ては、数値を次に小さい整数にする操作
→正の数でも負の数でも、小数部分を切り捨てて整数にする
切り下げ(Math.floor メソッド):
切り下げは、与えられた数値以下で最大の整数を返します。
つまり、数値を切り下げて整数に丸めます。
正の数では数値を小さくし、負の数では数値を大きくします。
例:
- Math.floor(3.7) は 3 を返します。
- Math.floor(-3.7) は -4 を返します。
切り捨て(Math.trunc メソッド):
切り捨ては、与えられた数値の小数部分を切り捨てて整数部分のみを返します。
つまり、正の数でも負の数でも、小数部分を切り捨てて整数にする点が異なります。
例:
- Math.trunc(3.7) は 3 を返します。
- Math.trunc(-3.7) は -3 を返します。
「切り下げ」は常に下に向かって切り下げるのに対して、「切り捨て」は数値の符号によって切り捨てる方向が変わることがあります。
整数部分を丸める場合は「切り下げ」を使い、小数部分を切り捨てる場合は「切り捨て」を使うことが一般的です。
要するに、違いは主に負の数に対する振る舞いです。
変換結果の比較例
変換前の値 | 切り下げ (Math.floor) | 切り捨て (Math.trunc) |
---|---|---|
3.7 | 3 | 3 |
-3.7 | -4 | -3 |
Math.floorメソッドの書式
切り下げとは、与えられた数値をそれ以下の最大の整数に丸める操作を指します。
このメソッドは、GAS(Google Apps Script)でも利用できる組み込みの数値処理関数です。
金額計算やデータの整形など、正確な整数値を得る必要がある場面で活用されます。また、数値の表示や比較などで利用されることもあります。
書式
Math.floor(数値)
引数 | タイプ | 動作 |
---|---|---|
数値 | Integer | 指定した数値の小数第一位を切り下げます。 |
サンプル1: 切り捨ての基本的な例
// 切り捨ての基本的な例
let number1 = 7.8;
let floored1 = Math.floor(number1); // 7
let number2 = 3.2;
let floored2 = Math.floor(number2); // 3
この例では、Math.floorメソッドを使用して数値を切り下げています。数値7.8は7に切り下げられ、数値3.2は3に切り下げられます。
サンプル2: 価格の切り捨て計算
// 価格の切り捨て計算
let itemPrice = 199.99;
let discountRate = 0.2;
let discountedPrice = itemPrice * (1 - discountRate); // 159.99200000000002
let flooredPrice = Math.floor(discountedPrice); // 159
この例では、商品価格と割引率を用いて割引後価格を計算し、Math.floorメソッドを使って割引後価格を切り下げています。
サンプル3: 負の数の切り捨て
// 負の数の切り捨て
let negativeNumber = -3.5;
let flooredNegative = Math.floor(negativeNumber); // -4
負の数を切り下げる場合も、数値をそれ以下の最大の整数に切り下げます。
Math.truncメソッド(切り捨て)
Math.truncメソッドは、与えられた数値の小数部分を切り捨てるためのメソッドです。
Google Apps Script(GAS)でも利用可能なMath.truncメソッドは、小数点以下を切り捨てるため、整数部分を抽出するときに使用します。
書式
Math.trunc(数値)
引数 | タイプ | 動作 |
---|---|---|
数値 | Integer | 指定した数値の整数部分を抽出します。 |
サンプル1: 正の数の切り捨て
// 切り捨て前の数値
let num = 7.8;
// Math.truncを使用して切り捨て
let result = Math.trunc(num); // 7
この例では、正の数7.8をMath.truncメソッドで切り捨てています。
Math.truncは小数部分を切り捨て、整数部分のみを抽出します。
そのため、小数部分が取り除かれて整数部分のみが残ります。
結果として、7が格納されます。
サンプル2: 負の数の切り捨て
// 切り捨て前の数値
let num = -5.4;
// Math.truncを使用して切り捨て
let result = Math.trunc(num); // -5
この例では、負の数-5.4をMath.truncメソッドで切り捨てています。Math.truncは小数部分を切り捨て、整数部分のみを抽出します。
負の数の場合も同様に、小数部分が取り除かれて整数部分のみが残ります。
結果として、-5が格納されます。

