对于这个问题的思考,起源于云风的这篇文章 浮点运算潜在的结果不一致问题,其中有几个评论我比较在意:
1 | stirp: |
结合以前阅读《C专家编程》的模糊记忆,我记得在表达式中,float 会被提升为 double ,这样会让编译器处理起来更加方便。看了这几个评论信息后,我随即去查阅了《C A Reference Manual》,发现的确如 Cloud 所说,以二元操作符为例:
可以看到,针对二元操作表达式,如果两边都是 float 类型,那么标准 C 已经不把精度提升为 double 了。
对于这个问题的思考,起源于云风的这篇文章 浮点运算潜在的结果不一致问题,其中有几个评论我比较在意:
1 | stirp: |
结合以前阅读《C专家编程》的模糊记忆,我记得在表达式中,float 会被提升为 double ,这样会让编译器处理起来更加方便。看了这几个评论信息后,我随即去查阅了《C A Reference Manual》,发现的确如 Cloud 所说,以二元操作符为例:
可以看到,针对二元操作表达式,如果两边都是 float 类型,那么标准 C 已经不把精度提升为 double 了。