Rumah > Artikel > pembangunan bahagian belakang > Aritmetik dan perkaitan titik terapung dalam C, C++ dan Java
Dalam C, C++ dan Java, kami menggunakan nombor titik terapung untuk melaksanakan beberapa operasi matematik. Sekarang kita akan menyemak sama ada nombor titik terapung mengikut peraturan persekutuan.
Jawapannya tidak. Dalam sesetengah kes, nombor titik terapung tidak mengikut peraturan persekutuan. Di sini kita akan melihat beberapa contoh.
#include<iostream> using namespace std; main() { float x = -500000000; float y = 500000000; float z = 1; cout << "x + (y + z) is: " << x + (y + z) << endl; cout << "(x + y) + z is "<< (x + y) + z << endl; }
x + (y + z) is: 0 (x + y) + z is 1
Di sini kita dapat melihat bahawa hasilnya tidak sama, tetapi secara teori kita boleh mengatakan bahawa ia sentiasa 1. Sekarang timbul persoalan, bagaimana ini dilakukan?
Dalam kes pertama x + (y + z), (500000000 + 1) sedang dilaksanakan. Tetapi untuk nombor titik terapung Selepas pembundaran, ia ditukar semula kepada 500000000. Sekarang tambah -500000000 dan ia menjadi 0. Dalam ungkapan kedua, nilainya ialah (-500000000 + 500000000) = 0, kemudian 1 ditambah, jadi hasil akhir Hasilnya ialah 1.
Jika kita menggunakan integer, kedua-dua ungkapan akan mengembalikan hasil yang sama, iaitu 1.
Atas ialah kandungan terperinci Aritmetik dan perkaitan titik terapung dalam C, C++ dan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!