为什么rfd_total > max_rfd
是真的?我不明白rfd_total
如何能在下面的代码大于max_rfd
:为什么在这段代码中一个变量大于另一个变量?
max_rfd = parseFloat(jQuery('#mx-rfd_'+order_id).val()).toFixed(2);
rfd_total = parseFloat(items_total+tax_total+shipping+allowances*1).toFixed(2);
if(rfd_total > max_rfd)
{ if(isNaN(rfd_total)) alert('rfd_total isNaN'); // not triggered
if(isNaN(max_rfd)) alert('max_rfd isNaN'); // not triggered
alert(rfd_total); // alerts 51.16
alert(max_rfd); // alerts 102.32
return false;
}
在那里得到一个的console.log(max_rfd,rdf_total)。获取Chrome开发工具或Firebug并查看输出。你将能够看到他们的价值观,以及他们是否是字符串或数字) – 2012-04-05 00:44:21
在快速测试if语句做,如果((rfd_total * 1)>(max_rfd * 1)),那么它应该转换为数字。这应该会产生你想要的结果。如果确实如此,则将其应用于替换parseFloat的初始变量。编辑:格里芬指出,toFixed()返回一个字符串。所以如果你想使用该方法,在toFixed()之后乘以1。 – 2012-04-05 00:45:31
@MikeDepies ,你可以看到我只好使出在设置rfd_total的* 1的方法,但同样,我不明白的是,为什么既不isNaN(rfd_total)NOR isNaN(max_rfd)返回true? – WallabyKid 2012-04-05 00:54:46