Ini kerana nombor titik terapung dalam komputer mungkin (perhatikan bahawa ia mungkin) tidak tepat. Kenapa jadi begini? Ini ditentukan oleh peraturan penyimpanan nombor titik terapung Mari kita lihat dahulu cara menukar nombor perpuluhan 0.4 kepada perpuluhan binari, menggunakan kaedah "didarab dengan 2, dibundarkan dan disusun mengikut tertib" (tidak faham? Ini adalah perkara yang tidak perlu, ia terlalu asas ), kami mendapati bahawa 0.4 tidak boleh diwakili dengan tepat oleh perduaan Dalam dunia nombor perduaan, ia adalah perpuluhan berulang yang tidak terhingga, ia tidak boleh "dipaparkan" walaupun ia "dipaparkan". Apatah lagi ia disimpan dalam ingatan (penyimpanan nombor titik terapung termasuk tiga bahagian: bit tanda, bit eksponen dan mantissa, yang tidak akan diperkenalkan secara terperinci Ia boleh difahami bahawa tidak ada cara untuk mewakili dengan tepat). 1/3 dalam dunia perpuluhan, jadi dalam Sudah tentu, 1/5 tidak boleh dinyatakan dengan tepat dalam dunia binari (ia boleh dinyatakan jika binari juga mempunyai pecahan Dalam dunia binari, 1/5 ialah perpuluhan berulang yang tidak terhingga).
Double akan kehilangan ketepatan semasa operasi. Adalah disyorkan untuk menggunakan java.math.BigDecimal untuk operasi.
Ini kerana nombor titik terapung dalam komputer mungkin (perhatikan bahawa ia mungkin) tidak tepat. Kenapa jadi begini? Ini ditentukan oleh peraturan penyimpanan nombor titik terapung Mari kita lihat dahulu cara menukar nombor perpuluhan 0.4 kepada perpuluhan binari, menggunakan kaedah "didarab dengan 2, dibundarkan dan disusun mengikut tertib" (tidak faham? Ini adalah perkara yang tidak perlu, ia terlalu asas ), kami mendapati bahawa 0.4 tidak boleh diwakili dengan tepat oleh perduaan Dalam dunia nombor perduaan, ia adalah perpuluhan berulang yang tidak terhingga, ia tidak boleh "dipaparkan" walaupun ia "dipaparkan". Apatah lagi ia disimpan dalam ingatan (penyimpanan nombor titik terapung termasuk tiga bahagian: bit tanda, bit eksponen dan mantissa, yang tidak akan diperkenalkan secara terperinci Ia boleh difahami bahawa tidak ada cara untuk mewakili dengan tepat). 1/3 dalam dunia perpuluhan, jadi dalam Sudah tentu, 1/5 tidak boleh dinyatakan dengan tepat dalam dunia binari (ia boleh dinyatakan jika binari juga mempunyai pecahan Dalam dunia binari, 1/5 ialah perpuluhan berulang yang tidak terhingga).