作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
你好,我正在学习 Objective C,我正在做经典的计算器示例。
问题是,当我将零乘以任何负数时,我得到的是负零,我将结果放入( double )类型!
为了查看发生了什么,我使用了调试器,这就是我得到的:
(gdb) print -2*0
$1 = 0(gdb) print (double) -2 * 0
$2 = -0
在第二种情况下,当我将它转换为 double 类型时,它变成了负零!我怎样才能在我的应用程序中解决这个问题?我需要和 double 一起工作。如何修复结果,以便在结果应为零时得到零?
最佳答案
我做了一个简单的测试:
double d = (double) -2.0 * 0;
if (d < 0)
printf("d is less than zero\n");
if (d == 0)
printf("d is equal to zero\n");
if (d > 0)
printf("d is greater than zero\n");
printf("d is: %lf\n", d);
输出:
d is equal to zero
d is: -0.000000
因此,要解决此问题,您可以在应用程序中添加一个简单的 if-check:
if (d == 0) d = 0;
关于c - 如何在C中将负零转换为正零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9657993/
我是一名优秀的程序员,十分优秀!