【发布时间】:2015-10-25 03:34:41
【问题描述】:
我的代码中有这样的内容:
a = -2;
b = 1/a;
printf("%d", b);
printf 正在打印 0。有人知道这是为什么吗?我该怎么做才能得到-0.5?我还尝试了"%.2f",这给了我 0.00。
谢谢
【问题讨论】:
-
变量
a和b在您的代码中声明为int,对吗?尝试将其中一个声明为浮点数,然后,您将得到-0.5。在你通过%.2f打印之前,值已经是0,你只是从0转换,因此转换结果也是0。 -
@EricWang:将其中一个声明为 float 是行不通的。如果 b 是 int 它不能保持 -0.5。如果 a 是 int,你又会陷入整数算术问题。
-
@lesnar 是的,你是对的,我想还有另一个变量 c 声明为浮点数,并且 c = a / b,需要 a 或 b 中的一个为浮点数。
标签: c decimal fractions negative-number