使用Math.round的奇怪方法结果
Strange method result using Math.round
当使用已知核心=70,newScore=70,深度=1,它返回3535!!!!!这怎么可能?
this.weightedAvg = function(depth, knownScore, newScore) {
if ((knownScore > 100) || (knownScore < -100)) return newScore;
else return Math.round((depth*knownScore + newScore)/(depth + 1));
};
当使用值35、70、2调用时,它将返回2357!请帮忙吗?
传递给函数的newScore值是一个字符串。你应该确保它们都是数字。此代码将起作用(注意将newScore转换为数字的+号):
this.weightedAvg = function(depth, knownScore, newScore) {
if ((knownScore > 100) || (knownScore < -100)) return newScore;
else return Math.round((depth*knownScore + +newScore)/(depth + 1));
};
更多详细信息:
70 + '70' // this is string concatenation instead of addition, results in 7070
当结果除以2:时,将其转换为数字
'7070'/2 // converts to number, resulting in 3535
您需要将var解析为如下数字:
var number1 = Number(n);
你正在传递字符串,所以他做"2"+"35"+"70"而不是2+35+70!
相关文章:
- JQuery:向多个匹配结果添加换行符的最简单方法
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- knex:根据结果创建数组的合适方法是什么
- javascript Ajax方法在不同的浏览器中有不同的结果
- 包含插入的Meteor方法没有返回记录ID作为结果
- 向模板实例变量传递调用方法调用的结果时出现异常
- Meteor:如何遍历一个数组,这是一个异步方法的结果
- 为什么在给出第一个结果后仍然调用此方法
- 使用Math.round的奇怪方法结果
- 使用lodash'扩展JS对象实例;s的extend方法会导致奇怪的结果
- 有没有更好的方法来实现同样的结果?单页网站
- 调用.ajax方法得到未定义的json结果,返回json格式列表<字符串>
- 从请求.js请求方法返回结果
- 对为什么js函数中的相同方法有不同的结果感到困惑
- 调用 HTTP get 方法以使用 angular JS 在下拉列表中填充结果
- MongoDB mapReduce方法意外结果
- 使用单个 ng 模型筛选结果并显示筛选方法
- 操作 RxJS 流并发布结果的可观察量的正确方法是什么?
- 保存方法结果的包装器
- 在Spring MVC中返回@Async方法结果,并将其返回给Ajax客户端