在一个很明显是数字的变量上获取NaN
Getting a NaN on a variable that is quite clearly a number
这是迄今为止我见过的最奇怪的错误。
在我的程序中,我有一个变量叫做avgVolMix。它是一个十进制变量,不是NaN(console.log(avgVolMix)将类似于0.3526246的内容打印到控制台)。但是,在赋值语句中使用变量会导致它破坏任何试图将其用于NaN的内容。示例:
console.log(avgVolMix); <- prints a working decimal
var moveRatio = 10 + avgVolMix * 10;
console.log(moveRatio); <- prints NaN
我真的不知道为什么会发生这种事。我想尽一切办法把它修好;我把它转换成一个字符串,然后返回,四舍五入到小数点后2位,再加0.0001——什么都不管用!这是我现在唯一能让它"工作"的方法:
var temp = 0.0;
for(i = 0; i <= avgVolMix; i+=0.1)
temp = i;
这会给temp分配一个接近avgVolMix的数字。然而,正如你所看到的,这是一个非常糟糕的编程。我还应该注意,这不仅仅是一个变量,与我使用的库相关的每个变量都会这样做(我正在开发一个音乐可视化工具)。有人知道为什么会发生这种事吗?
编辑:我现在实际上无法访问代码来测试这些东西,而且由于这是一个公司项目,我无论如何都不愿意打开jsfiddle。我只是想知道是否有人经历过这样的事情。我可以告诉你,我从这里得到了有问题的图书馆:http://gskinner.com/blog/archives/2011/03/music-visualizer-in-html5-js-with-source-code.html
如果它将变量值显示为NaN。然后尝试将变量转换为parseInt();方法希望它能起作用。因为我也面临这样的问题,并在尝试时解决了它。
相关文章:
- 使用全局变量来存储数字(JavaScript)
- 如何在html中将字符串转换为数字?以及如何将变量传递到scriptlet代码中
- 如何在javascript中一旦变量达到某个数字就对其进行更改
- 通过变量在两个数字之间切换
- 增加DIV数字变量的按钮
- 每次使用 Javascript 加载页面时增加一个数字(变量)的简单方法
- 添加两个数字变量将返回 NaN
- Javascript数字变量比较不起作用
- 通过参数更新数字变量的函数无法正确更新数字变量
- 在 Node.js 中为不同的浏览器提供不同的数字变量
- 无法对数字变量调用 toFixed
- 设置选项接受一个数字变量,拒绝另一个数字变量
- 检查输入的数字变量
- 数字变量总是未定义的
- 如何将Javascript数字变量转换为特定的单词
- 如何得到一个双随机数,并把它的数字变量
- 在JS中使用if语句和数字变量
- javascript字符串和数字变量
- 更新输入数字变量onclick
- 如何将数字变量添加到不同变量中的对象