是否将乘以两个双精度值 - > -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
我只是试过了,两者都得到了相同的结果。如果您尝试过并得到不同的结果,请使用该信息更新您的问题。如果你还没有尝试过,为什么不呢? –
你已经多次提出了这个问题,并且从我所看到的中得到了一些很好的答案和建议,解释了浮点算法是如何工作的。我仍然无能为力,究竟是什么激发了你的问题,或者以前的答案如何回答你的问题。 –