【正社員】還元率83%【フリーランス】マージン一律5万円で案件をご紹介させていただきます。 詳細はこちら

【Swift】四捨五入するコードについて解説/floor(), ceil(), round()

ほりうち

こんにちは!ほりうちと申します。この記事では、Swift 5.10およびXcode 15.4を使用して、Swiftにおける四捨五入の処理について、サンプルコードを交えながら説明しております。

初心者の方でも分かりやすいように、サンプルコードに適宜説明を入れながら解説していくので、ぜひご覧ください。

この記事を読んで分かること…
・floor()を用いた切り捨ての方法
・ceil()を用いた切り上げの方法
・round()を用いた四捨五入の方法

目次

実行環境

・実行環境:Swift PlayGround
・Swift:5.10
・XCode:15.4
・サンプルコードの実行確認日:2024年12月17日(火)

※ 今回紹介するfloor()、ceil()、round()は、macOS10.10+以上で動作しますので、それ未満の場合はOSのアップデートが必要な可能性があります。

floor()/切り捨てとは?

double floor(double);

floor()は引数の値を切り捨てることのできる、数学関数の一種です。

サンプルコード

import Foundation

let value = 16.53

let floorValue = floor(value)
print(floorValue)

let increasedFloorValue = floor(value*10)/10
print(increasedFloorValue)

出力

16.0
16.5

サンプルコードの説明

◾️行 1: Foundationをインポートしています。これが無ければ数学関数を使うことが出来ません。
◾️行 2: 切り捨てたい値valueを定義しています。今回はコードの中で値を再度代入しないので、letにしています。
◾️行 3: 切り捨てた値を代入するための値floorValueを定義しています。今回はコードの中で値を再度代入しないのでletにしています。
◾️行 4: floorValueを出力しています。
◾️行 5: 小数点第2位を切り捨てます。
・今回の場合だと、まず16.53を10倍した値である165.3をfloor()を使って切り捨てます。
・165.3を10で割ることで、切り捨てたい値である16.5が求められます。
・小数点をずらしたいときは、小数点第3位で切り捨てたい時は100、第4位で割り切りたい時は1000…のように、桁数を増やしていくことで実現することができます。例)小数点第3位の場合:floor(value*100)/100

ceil()/切り上げとは?

概要

double ceil(double);

ceil()は引数の値を切り上げることのできる、数学関数の一種です。

サンプルコード

import Foundation

let value = 16.53
let ceilValue = ceil(value)
print(ceilValue)

let increasedCeilValue = ceil(value*10)/10
print(increasedCeilValue)

出力

17.0
16.6

サンプルコードの説明

◾️行 1: Foundationをインポートしています。これが無ければ数学関数を使うことが出来ません。
◾️行 2: 切り上げたい値valueを定義しています。今回はコードの中で値を再度代入しないので、letにしています。
◾️行 3: 切り上げた値を代入するための値ceilValueを定義しています。今回はコードの中で値を再度代入しないので、letにしています。
◾️行 4:ceilValueを出力しています。
◾️行 5: 小数点第2位を切り上げます。・今回の場合だと、まず16.53を10倍した値である165.3をceil()を使って切り上げます。
・166.0を10で割ることで、切り上げたい値である16.6が求められます。
・小数点をずらしたいときは、小数点第3位で切り上げたい時は100、第4位で切り上げたい時は1000…のように、10の桁数を増やしていくことで実現することができます。
例)小数点第3位の場合:ceil(value*100)/100

round()/四捨五入

概要

double round(double);

round()は引数の値を四捨五入することのできる、数学関数の一種です。

サンプルコード

import Foundation

let value = 16.53
let roundValue = round(value)
print(roundValue)

let increasedRoundValue = round(value*10)/10
print(increasedRoundValue)

出力

17.0
16.5

サンプルコードの説明

◾️行 1: Foundationをインポートしています。これが無ければ数学関数を使うことが出来ません。
◾️行 2: 四捨五入したい値valueを定義しています。今回はコードの中で値を再度代入しないので、letにしています。
◾️行 3: 四捨五入した値を代入するための値roundValueを定義しています。今回はコードの中で値を再度代入しないので、letにしています。
◾️行 4: roundValueを出力しています。
◾️行 5: 小数点第2位を四捨五入します。
・今回の場合だと、まず16.53を10倍した値である165.3をround()を使って四捨五入します。
・165.3を10で割ることで、16.53が求められますが、四捨五入されるので16.5となります。
・小数点をずらしたいときは、小数点第3位で四捨五入したい時は100、第4位で四捨五入したい時は1000…のように、10の桁数を増やしていくことで実現することができます。
例)小数点第3位の場合:round(value*100)/100

まとめ

いかがでしたでしょうか?

この記事では、floor()ceil()round()を用いて値を四捨五入したり、切り上げ/切り捨てたりする方法について解説いたしました。

ではまた、次の記事でお会いしましょう!

ほりうち

この記事があなたのスキルアップに役立ったなら、次のキャリアステップを踏み出す絶好の機会かもしれません。エンジニアとしてのさらなる成長と挑戦を求めるなら、未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】をオススメします!

参考記事

https://developer.apple.com/documentation/kernel/1557272-ceil

https://developer.apple.com/documentation/kernel/1557338-floor

https://developer.apple.com/documentation/kernel/1557369-round

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次