Saya baru-baru ini mengalami masalah kecil di ios Swift saat mengonversi Double ke Int.
var myDoubleValue: Double = 10.2
var newInt = Int(myDoubleValue * 100) //1019
Di sana saya mengalikan 10,2 dengan 100 dan TIDAK mendapatkan nilai yang diharapkan (1020) dan malah 1019...
Namun berfungsi dengan benar di sebagian besar kasus sebagai berikut
var myDoubleValue: Double = 10.3
var newInt = Int(myDoubleValue * 100) //1030
Saya juga mengujinya lebih lanjut dengan Java dan masalah yang sama juga di sana..
double myDoubleValue = 10.2;
int myIntValue1 = (int)(myDoubleValue * 100); //1019
Saya dapat mengatasi masalah ini dengan melakukan 'putaran' sebelum mengonversi ke Int sebagai berikut...
var myDoubleValue: Double = 10.2
var newInt = Int(round(myDoubleValue * 100)) //1020
Tapi ini masuk ke hal yang tidak saya inginkan jika nilainya memiliki 3 desimal sebagai berikut, karena saat itu dibulatkan (10.206 ---> 1021)