嵌入式技术论坛
直播中

h1654155275.5741

7年用户 1013经验值
私信 关注
[问答]

rtt有什么办法能比较double类型数据的大小么?

rtt 有什么办法能比较double类型数据的大小么?

我用下面测试代码运行就报错,

double a,b;

a = 1.5;

b = 2.2;

if (a > b)

{

rt_kprintf("a\n");

}else{

rt_kprintf("b\n");

}

1.jpg

回帖(7)

张国厚

2022-11-15 10:55:22
你这出现末定义指令,应该是VFP功能没有使能引起的。
举报

h1654155275.5741

2022-11-15 10:55:31
未定义就是double类型比较,才报的错,
double,定义,sprintf什么的都可以,就是不能做大小比较,比较就报错,定位就是比较的内行
rtt没实现double,所以用的是c,但是不能进行大小比较。估计是没定义 > < >= <= ==之类的函数,不会要自己实现吧,还是有现成的函数只是我没找到?
举报

h1654155275.5741

2022-11-15 10:56:02
此外,我还尝试了下四则运算,double类型也不支持。同样的报错,,,
举报

张国厚

2022-11-15 10:56:42
你的芯片内核是什么?编译参数是什么?
报错后PC指向的这段地址,反汇编后的指令是什么?
举报

张虎豹

2022-11-15 10:56:52
记得 浮点数比较差值小于一个范围即可 float的是 1.0e-6f, double的是1.0e-15f
举报

h1654155275.5741

2022-11-15 10:56:59
关键就是不能做比较,
只要出现double类型的 > < == 之类的判断就会报这个错。定位就是比较的位置
double a = 3.5;

不管是 a > 0.1 a < 1.2 a == 0.0000000001 都是比较的这句报错
举报

h1654155275.5741

2022-11-15 10:57:05
此外,我还尝试了下四则运算,double类型也不支持。同样的报错,
举报

更多回帖

发帖
×
20
完善资料,
赚取积分