Rumah > pembangunan bahagian belakang > C++ > Mengapa Pendaraban Berganda dalam .NET Tidak Tepat?

Mengapa Pendaraban Berganda dalam .NET Tidak Tepat?

Patricia Arquette
Lepaskan: 2025-01-10 08:21:41
asal
366 orang telah melayarinya

Why Is Double Multiplication in .NET Imprecise?

Memahami Ketidaktepatan dalam .NET Double Precision Multiplication

Istilah "ketepatan berganda" dalam .NET mungkin mengelirukan. Aritmetik titik terapung berketepatan dua tidak selalunya tepat dengan sempurna. Mari kita periksa contoh biasa:

<code>double i = 10 * 0.69;</code>
Salin selepas log masuk

Daripada 6.9 yang dijangkakan, hasilnya selalunya 6.8999999999999995. Ketaktepatan ini timbul daripada cara nombor titik terapung diwakili dan disimpan.

Beregu, seperti jenis titik terapung lain, menganggarkan nombor nyata menggunakan format binari tertentu. Banyak nilai perpuluhan, seperti 0.69 dan 1/3, tidak boleh diwakili dengan tepat dalam format perduaan ini kerana batasannya yang wujud.

Pengkompil biasanya mengoptimumkan pendaraban pada masa penyusunan, menyimpan hasilnya sebagai pemalar. Walau bagaimanapun, memandangkan 6.9 tidak mempunyai perwakilan binari yang tepat, pemalar yang disimpan ialah anggaran.

Untuk mengurangkan perkara ini, pertimbangkan untuk menggunakan jenis decimal, yang menawarkan ketepatan yang lebih tinggi pada kos prestasi yang dikurangkan. Untuk aplikasi yang memerlukan ketepatan yang sangat tinggi, perpustakaan yang menyediakan sokongan nombor rasional, seperti BigRational, menawarkan pendekatan alternatif.

Atas ialah kandungan terperinci Mengapa Pendaraban Berganda dalam .NET Tidak Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan