0

我有这段代码,它应该从一个字段中获取值,并根据某个百分比(在本例中为 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
4

1 回答 1

1

val返回一个字符串。现在,按照您使用这些变量的方式,它们会自动转换为数字(尽管最好自己解析它们)。

您的一个或另一个值中有一个字符,可防止该值自动转换为数字;然后既然是这样NaN,任何涉及它的数学都会是NaN。如果您在使用它们之前在 Firebug 中进行检查AmtXAmyY您应该会看到该字符是什么。

同样,解析不是这里的实际问题,但是您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);

...取决于您的需求。

于 2013-07-19T13:55:41.563 回答