使用三元运算符时出现“表达式必须具有整数类型”错误

埃内斯:
float sigma;
// ...
int kernel_size = ((6.0 * sigma) % 2 == 0) ? (6 * sigma + 1) : (6 * sigma);

在这一行中,我想使用三元运算符获得大于6 * sigma值的最小整数。顺便说一句,西格玛是浮动的。

  1. 我不确定以上代码是否正确。
  2. 我也无法编译,获取expression must have integral type
MikeCAT:

您的代码肯定是错误的,因为它不会编译。

使用ceil(x)(返回不小于的最小整数x),您的计算可以像这样完成:

float sigma;
// ...
float s6 = 6.0 * sigma;
float c = ceil(s6);
int kernel_size = c == s6 ? c + 1 : c;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用具有4个表达式的三元运算符

具有反应路线的三元运算符中的多个表达式

在 lambda 表达式中使用三元条件运算符时,Linq select 返回错误结果

条件表达式/三元运算符

没有中间表达式的三元运算符

pylint讨论带有赋值表达式的三元运算符

在使用过滤器的表达式中应用三元运算符

rvalue分配的三元表达式不使用移动分配运算符

使用三元运算符分配给表达式

使用三元运算符在计算器上非法开始表达式

在给出“预期输出”的三元/运算符表达式中使用中断

在给出“预期输出”的三元/运算符表达式中使用中断

重载运算符+:表达式必须具有整数或无作用域的枚举类型

在Java中使用三元运算符添加值时出现错误的值

在Java中使用if vs.三元运算符时的“错误”返回类型

JavaScript三元运算符表达式中的Return语句

堆叠三元运算符在Angularjs表达式中不起作用

CMake生成器表达式中的三元运算符

带条件(三元)表达式的运算符“ sizeof”

空第二表达式的Javascript三元运算符

C中三元运算符中的条件表达式

将表达式从三元转换为逻辑运算符

来自三元运算符的赋值将忽略剩余的表达式

这个三元运算符表达式的等价物是什么?

三元运算符速记,用于在true / false子句中使用表达式的主题,而不是重复

使用三元运算符时是否对这两个表达式都进行了评估?

为什么三元运算符出现错误?

三元运算符,如果我避免写“表达式 2”,它会起作用,但如果我不写“表达式 3”,则会出现错误

matlab是否具有三元运算符?