坑记-float、memcmp
float
float source = 100.0f;
float result = source * 0.02f;
qDebug()<<(int)(source * 0.02f)<
结果
1 2
2 2
很神奇的结果,source * 0.02f默认结果不是float类型还是其他什么地方有问题?还是默默用double的好
运行平台:Qt5.9.2-MinGW
memcmp
struct tempStruct {
int n;
bool f;
double d;
};
int main(int argc, char *argv[]) {
tempStruct a1{10,true,10.0};
tempStruct a2 = a1;
tempStruct a3;
memset(&a3,0,sizeof(a1));
a3.n=10;
a3.f=true;
a3.d=10.0;
qDebug()<
结果
0
1
16 4 1 8
编译器自动补位对齐,所以memset以后是把a3内存所有值都改为0,然后将对应类型所在内存改为对应值,补位的区域还是0,而a1的补位区域是随机值。
若不能保证整个程序所有与此类型相关的操作都是赋值或memset,那就不要用memcmp判断。
【坑记-float、memcmp】Techie亮博客,转载请注明:Coologic ? 坑记-float、memcmp
Coologic 博客域名已更改,已从 www.techieliang.com 改为 www.coologic.cn,上述链接地址受到影响,若需查看源文请手动修改,多有不便,敬请谅解。
推荐阅读
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- Shell-Bash变量与运算符
- 清明,是追思、是传承、是感恩。
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- 七老修复好敏感、角质层薄、红血丝
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 螃蟹和这些食物同吃,轻则腹泻、重则中毒!要小心哦~
- 八、「料理风云」