Hai guys, pada post kali ini. Kita akan membahas mengenai Error koma (dikali 100 bukannya menjadi bulat malah menjadi semakin berkoma), misalnya seperti ini :

val discount = 0.7
val temp = discount * 100
print(temp) // 7,000000000000001

Ketika Anda melakukan perhitungan floating-point, seperti mengalikan 0.7 dengan 100 dalam komputer, mungkin terjadi sedikit kesalahan representasi numerik karena keterbatasan dalam representasi bilangan desimal di komputer. Ini adalah fenomena yang umum dalam komputasi floating-point.

Untuk mengatasi kesalahan tersebut, Anda dapat menggunakan fungsi pembulatan (rounding) atau mengontrol jumlah digit desimal yang ditampilkan dalam output agar terlihat lebih rapi. Misalnya, dalam Python, Anda dapat menggunakan fungsi round() untuk membulatkan hasil:

val hasil = (discount * 100).round(2)
println(hasil)

Ini akan menghasilkan output “77.0” dengan dua digit desimal.

fun Double.round(decimals: Int): Double {
    val multiplier = 10.0.pow(decimals)
    return round(this * multiplier) / multiplier
}

Namun, perlu diingat bahwa dalam komputasi floating-point, tidak mungkin untuk menghindari kesalahan representasi sepenuhnya. Itu sebabnya penting untuk memahami cara kerja bilangan floating-point dan mengelola kesalahan yang mungkin timbul sesuai dengan kebutuhan aplikasi Anda.

Jika code diatas tidak bekerja, kalian bisa mencoba Code ini :

val hasil = ((discount  * 100) * 10000.0).roundToInt() / 10000.0

Selamat Belajar

Categorized in:

Tagged in:

,