[英]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之前檢查過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);
...根據您的需求
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.