是否將乘以兩個雙精度值 - > -329.0000 * 0.000000的計算給出結果-0.000000的32位和0.000000的64位?對32位和64位操作系統的不同計算
回答
您已經在前面四個問題中詢問了此問題背後的問題,並且您已被告知您所看到的原因是您的負值不是零(或負值爲零),而是由於用於顯示它的格式規格,因此顯示爲「-0.000000」。該值比-0.0000005更小(接近於零),因此它四捨五入爲全0的顯示。 顯示不是實際值。
用%g
指定符打印值,您將看到它不是零。
'-329.0000 * 0.000000'的結果不是一些小的非零值。在數學上,它恰好爲零。在IEEE算術中,結果爲負零;用'%g'打印顯示「-0」,並且它等於「0.0」。 (如果OP提供了實際的代碼,這將更清楚。) –
@KeithThompson:從OP的其他問題可以看出,它們不是**乘以0.000000的-329.0000。它們有一些'double'對象,它包含一個非零的非常小的值,但由於格式化而顯示爲「0.000000」,這導致它們錯誤地認爲它是0.同樣,乘以這個微小值的乘積 - 329是一個微小的負值,顯示爲「-0.000000」,但實際上並不爲零。 OP的其他兩個問題顯示了一個分支,表示該值不爲零(包括負值爲零)。 –
- 1. 模塊化計算32位與64位操作系統
- 2. 32位/ 64位操作系統?
- 3. Windows 64位操作系統上的32位或64位Android SDK?
- 4. 什麼數據類型是32位操作系統中的16位和64位操作系統中的32位?
- 5. 對32位系統中的64位字進行操作
- 6. 關於64位和32位的Mac操作系統
- 7. 32位和64位操作系統上的Java版本
- 8. 32位系統中的32位和64位之間的操作(sint/uint)
- 9. 使用arm v8運行32位和64位操作系統
- 10. 32位OpenCL SDK和64位操作系統錯誤
- 11. 邏輯地址空間在64位和32位操作系統
- 12. 32位DLL不能在64位操作系統
- 13. 確定從32位操作系統或64位操作系統C/C++應用
- 14. 64位操作系統上的32位ActiveX DLL的問題
- 15. UEFI BIOS和操作系統必須具有相同的32位或64位?
- 16. 安裝在64位操作系統上的Windows 32位Eclipse?
- 17. 64位操作系統上的32位VC++可再發行?
- 18. VM Virtual Box 64位硬件上的32位操作系統
- 19. 32位應用程序的64位操作系統
- 20. 如何檢測Flex中的32位或64位操作系統?
- 21. 在64位架構上的32位操作系統
- 22. 將32位訪問系統部署到64位Office計算機
- 23. 64位操作系統上的32位或64位應用程序?
- 24. 32位dll 64位操作系統與regsvr32.exe
- 25. JNA在64位操作系統上具有32位JVM
- 26. 在32位操作系統中使用64位dll
- 27. 在64位操作系統上調試32位CASSINI(Oracle 9)
- 28. 在64位操作系統上啓動32位進程
- 29. 64位操作系統與32位MS辦公室問題
- 30. 開在64位操作系統32位Visual C#項目
它*應*返回相同的值,[按照IEEE-754規則](http://en.wikipedia.org/wiki/IEEE_floating_point) - 假設環境工作如此。單個(32位)和雙(64位)浮點類型通常都存在於[非嵌入] 32位和64位環境中。 – user2864740
我只是試過了,兩者都得到了相同的結果。如果您嘗試過並得到不同的結果,請使用該信息更新您的問題。如果你還沒有嘗試過,爲什麼不呢? –
你已經多次提出了這個問題,並且從我所看到的中得到了一些很好的答案和建議,解釋了浮點算法是如何工作的。我仍然無能爲力,究竟是什麼激發了你的問題,或者以前的答案如何回答你的問題。 –