0

このコードは、1 つのフィールドから値を取得し、特定のパーセンテージ (この場合は 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 に答える