Di Java, saya ingin mengubah double menjadi integer, saya tahu jika Anda melakukan ini:
double x = 1.5;
int y = (int)x;
Anda mendapatkan y = 1. Jika kamu melakukan ini:
int y = (int)Math.round(x);
Anda mungkin akan mendapatkan 2. Namun, saya bertanya-tanya: karena representasi ganda dari bilangan bulat terkadang terlihat seperti 1,9999999998 atau sesuatu, apakah ada kemungkinan bahwa casting ganda yang dibuat melalui Math.round () masih akan menghasilkan angka yang terpotong, bukan dari angka bulat yang kita cari (yaitu: 1 bukan 2 dalam kode seperti yang diwakili)?
(dan ya, aku berarti seperti itu: Apakah ada setiap nilai x, di mana y akan menunjukkan hasil yang merupakan terpotong daripada representasi bulat x?)
Jika ya: Apakah ada cara yang lebih baik untuk mengubah int yang membulat tanpa risiko pemotongan?
Figured sesuatu: Math.round (x) mengembalikan panjang, bukan ganda. Oleh karena itu: tidak mungkin Math.round () mengembalikan angka seperti 3.9999998. Oleh karena itu, int (Math.round ()) tidak perlu memotong apa pun dan akan selalu berfungsi.