Kotlinで小数点以下2桁のフロートまたはダブルを切り上げます
この記事では、Kotlinで小数点以下2桁のフロートまたはダブルを切り上げるさまざまな方法について説明します。
1.使用する roundToInt()
関数
The roundToInt()
関数は、double値を最も近い整数に丸めます。次のように使用して、必要な小数点以下の桁数でフロートまたはダブルを切り上げることができます。
1 2 3 4 5 6 7 8 9 |
import kotlin.math.roundToInt fun main() { val random = 0.8458215996440445 val roundoff = (random * 100.0).roundToInt() / 100.0 println(roundoff) // 0.85 } |
0の数は、出力の小数点以下の桁数を示します。したがって、小数点以下4桁で四捨五入するには、値を使用します 10000.0
:
1 2 3 4 5 6 7 8 9 |
import kotlin.math.roundToInt fun main() { val random = 0.037854093052263726 val roundoff = (random * 10000.0).roundToInt() / 10000.0 println(roundoff) // 0.0379 } |
また、上記のコードのこの代替および同等のバージョンを検討してください。
1 2 3 4 5 6 7 8 9 |
import kotlin.math.roundToInt fun main() { val random = 0.797490220519589 val roundoff = (random * 10000).roundToInt().toDouble() / 10000 println(roundoff) // 0.7975 } |
浮動小数点演算は非常に注意が必要であり、常に期待どおりに機能するとは限らないことに注意してください。たとえば、値 295.335
に「切り捨て」られます 295.33
「切り上げ」の代わりに 295.34
.
1 2 3 4 5 6 7 8 |
import kotlin.math.roundToInt fun main() { val random = 295.335 println(random * 100.0) // 29533.499999999996 println((random * 100.0).roundToInt() / 100.0) // 295.33 } |
2.使用する DecimalFormat.format()
関数
または、 DecimalFormat.format()
パターンを使用して小数点を2桁から2桁に制限する関数 #.##
。 The RoundingMode
を使用して提供できます setRoundingMode()
関数。
1 2 3 4 5 6 7 8 9 10 11 |
import java.math.RoundingMode import java.text.DecimalFormat fun main() { val random = 8435.21057752090819915 val df = DecimalFormat("#.##") df.roundingMode = RoundingMode.DOWN val roundoff = df.format(random) println(roundoff) // 8435.21 } |
の数に注意してください #
ドットの後は小数点以下の桁数を示します。したがって、小数点以下3桁で丸めるには、パターンを使用します #.###
:
1 2 3 4 5 6 7 8 9 10 11 |
import java.math.RoundingMode import java.text.DecimalFormat fun main() { val random = 4732.8326486752163523 val df = DecimalFormat("#.###") df.roundingMode = RoundingMode.DOWN val roundoff = df.format(random) println(roundoff) // 4732.832 } |
このソリューションは、 roundToInt()
丸めモードが提供されていない場合に機能します。つまり、値 295.335
に「切り捨て」られます 295.33
「切り上げ」の代わりに 295.34
.
1 2 3 4 5 6 7 8 9 |
import java.text.DecimalFormat fun main() { val random = 295.335 val df = DecimalFormat("#.##") val roundoff = df.format(random) println(roundoff) // 295.33 } |
3.使用する String.format()
関数
使用することもできます String.format()
floatまたはdoubleを特定の小数点以下の桁数で切り上げる関数。これは値に対して正常に機能します 295.335
、以下に示すように:
1 2 3 4 5 |
fun main() { val random = 295.335 val roundoff = String.format("%.2f", random) println(roundoff) // 295.34 } |
4.使用する BigDecimal
最後に、double値をに変換できます BigDecimal
を使用して、小数点を2桁から小数点以下2桁に制限します setScale()
指定された関数 RoundingMode
.
1 2 3 4 5 6 7 8 9 |
import java.math.BigDecimal import java.math.RoundingMode fun main() { val random = Math.random() val bd = BigDecimal(random) val roundoff = bd.setScale(2, RoundingMode.FLOOR) println(roundoff) } |
これは、Kotlinで小数点以下2桁のフロートまたはダブルを切り上げることです。