Java中double相减为什么会出现不精确的现象?
高洛峰
高洛峰 2017-04-17 17:46:37
0
5
826

double s = 5.3;
double s1 = 4.2;
System.out.println(s-s1);
输出1.0999999999999996

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(5)
阿神

Intipati jenis apungan dan berganda dalam jenis data asas Java ialah nombor titik terapung tidak boleh menyimpan data yang tepat Dalam kes ini, apabila nombor titik terapung dikira, hasil pengiraan tidak akan menjadi nilai yang tepat.

Oleh itu, Java menyediakan kelas BigDecimal Jika anda perlu melakukan operasi data yang tepat (seperti jumlah), anda boleh menggunakan kelas ini untuk menyelamatkan negara...

Mengenai pelaksanaan asas dan prinsip nombor titik terapung, perkara ini sering dibincangkan dalam kursus seperti 计算机原理 Anda boleh mencari sendiri maklumat yang berkaitan...

迷茫

Menggunakan BigDecimal dalam Java untuk pengiraan tepat nombor titik terapung

巴扎黑

Terima kasih atas jemputan! Saya tidak dapat menjelaskan mengapa ketepatan itu hilang, tetapi saya tahu cara menyelesaikannya. Adalah disyorkan untuk menukar dua jenis dan jenis lain kepada String sebelum pengiraan, dan kemudian memasukkannya ke dalam java.math.BigDecimal untuk pengiraan . math.BigDecimal datang dengan kaedah operasinya sendiri, seperti add() dan pide(). . Tunggu, objek BigDecimal akan dikembalikan selepas pengiraan, dan kemudian ditukar kepada jenis data asas menggunakan doubleValue(), intValue() dan kaedah lain.

迷茫

Terima kasih atas jemputan, anda boleh rujuk artikel ini untuk soalan inihttps://zm8.sm-tc.cn/?src=http://z...

伊谢尔伦

Kerana aritmetik komputer adalah binari.

Penukaran 0.1 dalam perpuluhan kepada perduaan ialah perpuluhan berulang yang tidak terhingga dan mesti dipotong.

Untuk penambahan dan penolakan mata wang perpuluhan, anda boleh menggunakan jenis BigDecimal (dipanggil Decimal dalam sesetengah bahasa) untuk mengelakkan ralat pemotongan.

Anda juga boleh menentukan sendiri kelas nombor, seperti yang dilakukan oleh matlab.

Ralat dan ralat adalah dua perkara yang berbeza Perbezaan pada akhirnya tidak penting dalam kebanyakan kes.

Contohnya: Gunakan nombor titik terapung berketepatan dua untuk mengira lilitan bumi Ralat pemotongan adalah pada tertib 0.000001 milimeter.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan