【发布时间】:2015-04-07 20:34:53
【问题描述】:
我正在尝试比较两个数字“a”和“b”,如果 a 大于 b,我想将另一个 double c 设置为 1,否则我想将 c 设置为 0。
以下是我到目前为止所做的-
#include <stdio.h>
#include <math.h>
int main() {
double a = 0.01242;
double b = 0.04231;
double c = ceil(fmod(a,b));
//c should be 1 if a > b or else it should be 0
}
我的问题是它适用于某些数字,但通常 ceil() 会返回大于 1 的值。
我想不使用任何包含布尔返回类型的运算符。
【问题讨论】:
-
不确定您所说的“任何类型的包含布尔返回类型的运算符”是什么意思...三元运算符 (
foo = bar ? 0 : 1;) 出来了吗? -
我不知道您认为避免“布尔返回类型”会达到什么效果,但您目前涉及
fmod的解决方案至少与除法一样昂贵。 -
ceil 里面有条件运算符吗
-
signbit()是条件函数吗?