簡體   English   中英

將文本字段轉換為數值(獲取NaN)

[英]Converting Text Field to Numerical Value (Getting NaN)

我有這段代碼,應該從一個字段中獲取值,並基於一定百分比(在本例中為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

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);

...根據您的需求

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM