是JavaScript的知识问题或在我的代码是错误的
Is a knowledge issue of JavaScript or is something wrong in my code?
我在我的网页的某些过程中遇到了问题,经过一段时间寻找问题,我可以检测到发生了什么,现在我有一个问题,为什么会发生?
的例子:下面是一个代码示例:
function DoSomething(number, divisor){
var result = number % divisor;
var minimumAllowed = 0;
if(result == minimumAllowed){
.... Do stuff
}
}
当代码传入参数number = 1000和divisor = 0.2时,我可以重现这个问题。
这是mozilla控制台的问题:
1000 % .2 = 0.1999999999999445
1000 / .2 = 5000
我想是1000 % .2 = 0
,不是0.1999999999999445
,所以是1000 / .2 is 5000
。
谢谢你的解释
问题不在于javascript,而在于处理器处理浮点数的方式。
基本上每个浮点运算都有一个数学错误的代价,通常很小,当你加,乘,等等,但是当你需要检查某些东西是否相等时,就变得非常痛苦,就像在这个例子中。
如果您尝试使用整数值(尝试10000 % 2)编写代码,您应该会得到正确答案。
相关文章:
- 闭包编译器--调试解决了我的错误
- 有人能发现我的错误吗(自动完成文本框)
- Java脚本,需要帮助查找我的错误
- 从引导框架发送电子邮件 我的错误是我收到一条消息是邮件已成功发送,但我没有收到任何邮件
- 为什么我的猫头鹰旋转木马在我的第一组中不起作用?请问我的错误在哪里
- 显示/隐藏马尔坎 有人指出我的错误
- 我的错误处理程序如何优先于早期的中间件
- Javascript:奇数或偶数脚本找不到我的错误
- 我打开新窗口的代码没有效果.有人能认出我的错误吗
- 什么'这是我的错误代码
- Javascript-我可以'我没有发现我的错误.(单选按钮)
- 从属YII输入框?我的错误在哪里?如何在dropDownList中添加Onchange事件?而无需使用控制器
- 可以't删除事件侦听器,不理解我的错误
- 为什么我的错误消息不起作用
- IE兼容模式阻止我得到我的错误信息
- 为什么node.js不能捕捉到我的错误?
- 不能找到我的错误在我的HTML代码,为javascript测验
- 哪里是我的错误使用JavaScript和jQuery
- 我的错误在哪里?未捕获的SyntaxError: missing)参数列表后
- AngularJS -当触发器变量在作用域中改变时,我的错误消息不会更新