Rumah > pembangunan bahagian belakang > C++ > Adakah Bersekutu Aritmetik Titik Terapung?

Adakah Bersekutu Aritmetik Titik Terapung?

Susan Sarandon
Lepaskan: 2024-12-08 04:47:09
asal
382 orang telah melayarinya

Is Floating-Point Arithmetic Associative?

Perkaitan Aritmetik Titik Terapung

Aritmetik titik terapung digunakan secara meluas dalam pengkomputeran saintifik, namun persoalan pelik timbul: Adakah ia bersekutu untuk penambahan dan pendaraban? Pertanyaan yang kelihatan mudah ini mempunyai kerumitan tersembunyi.

Dalam bidang penambahan titik terapung, persekutuan tidak selalu dijamin. Contoh yang menarik ialah kod berikut:

cout << ((0.7 + 0.2 + 0.1) == 1) << endl;     //output is 0
cout << ((0.7 + 0.1 + 0.2) == 1) << endl;     //output is 1
Salin selepas log masuk

Kami terkejut, kedua-dua pernyataan ini menghasilkan hasil yang berbeza. Mengapa demikian?

Penjelasan terletak pada pengehadan perwakilan titik terapung. Nombor titik terapung disimpan sebagai anggaran nilai sebenar, memperkenalkan tahap ketidaktepatan. Apabila menambah berbilang nilai titik terapung, susunan operasi adalah penting kerana ralat terkumpul dan pembundaran.

Seperti kertas standard yang dirujuk, "Apa Yang Setiap Ahli Sains Komputer Patut Tahu tentang Aritmetik Titik Terapung," dengan tepat menyatakan:

"Disebabkan ralat pembulatan, undang-undang bersekutu algebra tidak semestinya memegang untuk titik terapung nombor."

Atas ialah kandungan terperinci Adakah Bersekutu Aritmetik Titik Terapung?. 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