热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

多行数学结果不同于单行

如何解决《多行数学结果不同于单行》经验,为你挑选了1个好方法。

我遇到了一些浮点数学的问题,我发现如果我在一行上进行数学运算,我会将-0传递给tan(),如果我在两行中执行,我会将0传递给tan ().看一看:

float theta = PI / 2.f;
float p = (PI / 2.f) - theta;
float result = tan(p);

以上,p = -0,结果= -4.37 ......

float theta = PI / 2.f;
float p = PI / 2.f;
p -= theta;
float result = tan(p);

以上,p = 0,结果= 0.

有人可以解释这个区别吗?我假设-0导致tan()的结果,虽然我在谷歌找不到任何解释原因的东西.为什么在不同的行上分布的完全相同的计算会得到不同的答案?

谢谢



1> Naor Tedgi..:

这可能是因为PI类型.

如果你使用double它将改为浮动然后结果将如你所代表的那样.

但如果PI是float这两种测试方案都是平等的.


推荐阅读
author-avatar
kiki俏佳人2502909673
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有