Javascript IE7和IE8 JS支持Math.floor(或其他方法?)

Javascript IE7和IE8 JS支持Math.floor(或其他方法?),javascript,internet-explorer-8,internet-explorer-7,Javascript,Internet Explorer 8,Internet Explorer 7,我已经围绕这个主题研究了很长一段时间,但我无法找出是哪种方法或代码导致了IE7和IE8的问题——它在IE9、Chrome和FF中运行良好。使用IE9的F12工具进行调试时,javascript会在此行停止,错误为运行IE7或IE8模式时,对象不支持此属性或方法: pmt = (Math.floor((princ*intRate)/(1-Math.pow(1+intRate,(-1*months)))*100)/100).toFixed(2); 脚本位于内联位置,而不是通过链接文件 在此之前未声

我已经围绕这个主题研究了很长一段时间,但我无法找出是哪种方法或代码导致了IE7和IE8的问题——它在IE9、Chrome和FF中运行良好。使用IE9的F12工具进行调试时,javascript会在此行停止,错误为运行IE7或IE8模式时,
对象不支持此属性或方法:

pmt = (Math.floor((princ*intRate)/(1-Math.pow(1+intRate,(-1*months)))*100)/100).toFixed(2);
脚本位于内联位置,而不是通过链接文件

在此之前未声明
pmt
变量,它似乎指出变量是问题所在。脚本会从前面声明的变量中受益吗

提前谢谢

答复:

根据Cory在下面的评论,问题不是由于任何特定的方法,而是因为我没有在
pmt
变量之前添加
var
声明


现在一切都好了-谢谢

我不认为这是一个数学问题。地板或IE看看这把小提琴:


可能是您输入了错误的参数,而表达式的计算结果不正确,因此出现了错误。

我认为这不是math.floor或IE的问题。请看一下这把小提琴:


可能是您输入了错误的参数,而表达式的计算结果不正确,因此出现了错误。

输入一些换行符,然后打开IE8中的IE developer tools(F12)。您将更好地了解错误的实际位置。如何测试它?看起来像是IE中的一个bug。尝试将该行拆分为多个语句进行调试。你是说在
pmt
变量之前从未使用过
var
“not declared”吗?根据我的经验,“Math.foo()”方法在IE中都可以正常工作。为什么不创建一个自我解答呢?输入一些换行符并打开IE开发者工具(F12)在IE8中。您将更好地了解错误的实际位置。如何测试它?看起来像是IE中的一个bug。尝试将该行拆分为多个语句以进行调试。你的意思是“未声明”吗,就像在
pmt
变量之前从未使用
var
一样?根据我的经验,“Math.foo()”方法在IE中都可以正常工作。为什么不自己创建一个答案呢?