PowerShell 四捨五入する(切り上げ、切り捨て)
PowerShellで四捨五入、切り上げ、切り捨てする方法を解説します。
四捨五入
# 四捨五入
# [Math]::Round(四捨五入したい数, 小数何桁にするか, [MidpointRounding]::AwayFromZero)
# 実行例
[Math]::Round(123.456789, 0, [MidpointRounding]::AwayFromZero) # 123
[Math]::Round(123.456789, 1, [MidpointRounding]::AwayFromZero) # 123.5
[Math]::Round(123.456789, 2, [MidpointRounding]::AwayFromZero) # 123.46
注意!「 [MidpointRounding]::AwayFromZero」を付けないと近い偶数に丸められてしまします。
PS C:\temp> [Math]::Round( 123.45 , 1)
123.4
PS C:\temp> [Math]::Round( 123.45 , 1, [MidpointRounding]::AwayFromZero)
123.5
切り上げ
# 切り上げ
# 「小数何桁にするか」は2箇所設定することに注意してください
[Math]::Ceiling(切り上げしたい数 * [Math]::Pow(10, 小数何桁にするか)) / [Math]::Pow(10, 小数何桁にするか)
# 実行例
[Math]::Ceiling(123.456789 * [Math]::Pow(10, 0)) / [Math]::Pow(10, 0) #124
[Math]::Ceiling(123.456789 * [Math]::Pow(10, 1)) / [Math]::Pow(10, 1) #123.5
[Math]::Ceiling(123.456789 * [Math]::Pow(10, 2)) / [Math]::Pow(10, 2) #123.46
[Math]::Ceiling(123.000001 * [Math]::Pow(10, 3)) / [Math]::Pow(10, 3) #123.001
関数化してみました
# 切り上げしたい数と桁を渡す
function Ceiling([double]$num, [int]$numDigits = 0){
$m = [Math]::Pow(10, $numDigits)
return [Math]::Ceiling($num * $m) / $m
}
# 実行例
PS C:\temp> Ceiling 123.456789 3
123.457
切り捨て
# 切り捨て
# 「小数何桁にするか」は2箇所設定することに注意してください
[Math]::Truncate(切り捨てしたい数 * [Math]::Pow(10, 小数何桁にするか)) / [Math]::Pow(10, 小数何桁にするか)
# 実行例
[Math]::Truncate(123.456789 * [Math]::Pow(10, 0)) / [Math]::Pow(10, 0) # 123
[Math]::Truncate(123.456789 * [Math]::Pow(10, 1)) / [Math]::Pow(10, 1) # 123.4
[Math]::Truncate(123.456789 * [Math]::Pow(10, 2)) / [Math]::Pow(10, 2) # 123.45
[Math]::Truncate(123.456789 * [Math]::Pow(10, 3)) / [Math]::Pow(10, 3) # 123.456
[Math]::Truncate(123.456789 * [Math]::Pow(10, 4)) / [Math]::Pow(10, 4) # 123.4567
関数化してみました
# 切り捨てしたい数と桁を渡す
function Truncate([double]$num, [int]$numDigits = 0)
{
$m = [Math]::Pow(10, $numDigits)
return [Math]::Truncate($num * $m) / $m
}
# 実行例
PS C:\temp> Truncate 123.456789 3
123.456
#PowerShell #四捨五入 #切り捨て #切り上げ #コマンドレット #プログラミング学習 #プログラミング初心者 #毎日Note