首頁 > 後端開發 > C++ > 在C、C++和Java中的浮點運算與結合性

在C、C++和Java中的浮點運算與結合性

王林
發布: 2023-08-28 09:09:11
轉載
1255 人瀏覽過

在C、C++和Java中的浮點運算與結合性

在 C、C 和 Java 中,我們使用浮點數進行一些數學運算。現在我們將檢查浮點數是否遵循結合性規則。

答案是否定的。在某些情況下,浮點數不遵循結合性規則。這裡我們將看到一些範例。

範例程式碼

#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
登入後複製

在這裡,我們可以看到結果並不相同,但理論上我們可以說它們總是 1。現在問題來了,這是如何完成的?

在第一種情況 x (y z) 中,(500000000 1) 正在執行。但對於浮點數 四捨五入後,再次折算為500000000。現在加上-500000000,它就變成0了。 在第二個表達式中,值為 (-500000000 500000000) = 0,然後加 1,因此最終結果 結果是 1。

如果我們使用整數,那麼兩個表達式將會傳回相同的結果,即 1。

以上是在C、C++和Java中的浮點運算與結合性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板