Sebagai contoh, jika jenis apungan 2.0000000000 ditukar kepada int, storan asas hendaklah 1.999999999999999 Terdapat had ketepatan, jadi apabila saya menukar nombor ini kepada int, saya fikir ia akan menjadi 1 (bahagian perpuluhan dibuang)
. Tetapi saya telah menguji beberapa bahasa dan semuanya betul (php, java, go, js)
php:
js:
pergi:
java:
2.0
boleh dinyatakan dengan tepat dengan nombor titik terapung sepatutnya tiada masalah dengan nombor iniPerpuluhan disimpan dalam tatatanda saintifik, bukan 1.999999..., ia diproses semasa pemindahan paksa, bukan terus ditukar kepada jenis
Secara umumnya, menukar ketepatan rendah kepada ketepatan tinggi, seperti int->float, apabila menukar ketepatan tinggi kepada ketepatan rendah, anda akan kehilangan ketepatan, dan keputusan data mungkin menjadi sangat mengejutkan.
Beberapa contoh klasik
(int)(0.57 * 100)
(int)((0.1+0.7)*10)
Ia tidak mempunyai kepentingan praktikal jika ia benar-benar berfungsi seperti yang anda fikirkan, orang yang mereka bentuk bahasa ini pasti akan mengambil kiranya
Pemahaman terperinci memerlukan prinsip pemasangan tertentu, jadi jangan terlalu terbawa-bawa
Boleh saya bertanya di mana anda memuat turun panel pengaturcaraan ini? Nampak sedap