我有这段代码,它应该从一个字段中获取值,并根据某个百分比(在这种情况下为60%)计算它的值。
我创建了一个隐藏字段来存储html中的值,但是当我运行计算并在Firebug中检查它时,它获得了一个NaN值。谁能告诉我我能做些什么来产生我需要的号码呢?
(Apply_RequestedAmtX_r != 0 & Apply_RequestedAdvanceAmtY_r !=0){
var AmtX= ($('#Apply_RequestedAdvanceAmtX_r').val());
var AmtY= ($("#Apply_AmtYAfterSplit_r").val());
var MaxAMT = parseInt((AmtY*60)/100);
$('#mna').val(MaxAMT
答案 0 :(得分:1)
val
返回一个字符串。现在,您使用这些变量的方式,它们将自动转换为数字(尽管最好自己解析它们)。
您的一个或多个值中包含一个字符,可防止该值自动转换为数字;然后,因为那是NaN
,任何涉及它的数学都将是NaN
。如果您在使用之前检查Firebug中的AmtX
和AmyY
,您应该看到该字符是什么。
同样,解析不是这里的实际问题,但你在错误的地方使用parseInt
(除非你试图用它来截断数字的小数部分,在这种情况下,是更好的选择)。这是正确的地方:
var AmtX= parseInt($('#Apply_RequestedAdvanceAmtX_r').val(), 10);
var AmtY= parseInt($("#Apply_AmtYAfterSplit_r").val(), 10);
var MaxAMT = (AmtY*60)/100;
MaxAMT
可能会有一小部分。如果您希望MaxAMT
为整数,则:
var MaxAMT = Math.round((AmtY*60)/100);
// or
var MaxAMT = Math.floor(AmtY*60)/100);
// or
var MaxAMT = Math.ceil(AmtY*60)/100);
......取决于您的需求。