我正在尝试获取多个变量的总和并将其传递给$total
变量。我已经声明并初始化了所有变量,并使用了parseInt
,parseFloat
和Number
函数,但无济于事。请在下面查看我的代码:
//gets value from a number slider
var $qty = slider == 1?val:$("#qty").val();
var $qly = slider == 2?val:$("#qly").val();
var $js = slider == 3?val:$("#js").val();
var $psd = slider == 4?val:$("#psd").val();
var $org = slider == 5?val:$("#org").val();
var $coop = slider == 6?val:$("#coop").val();
var $att = slider == 7?val:$("#att").val();
var $punc = slider == 8?val:$("#punc").val();
var $comm = slider == 9?val:$("#comm").val();
var $inter = slider == 10?val:$("#inter").val();
var $ini = slider == 11?val:$("#ini").val();
var $inno = slider == 12?val:$("#inno").val();
var $flex = slider == 13?val:$("#flex").val();
var $total = 0.0;
var $sum = 0.0;
我尝试过的事情:
$total = $qty + $qly + $js + $psd + $org + $coop + $punc + $comm + $inter + $ini+ $inno + $flex;
// returns 7.5555552.52.52.52.52.52.5
$total = Number($qty) + Number($qly) + Number($js) + Number($psd) + Number($org) + Number($coop) + Number($punc) + Number(comm) + Number($inter) + Number($ini) + Number($inno) + Number($flex);
//returns NaN
$total = parseFloat($qty) + parseFloat($qly) + parseFloat($js) + parseFloat($psd) + parseFloat($org) + parseFloat($coop) + parseFloat($punc) + parseFloat(comm) + parseFloat($inter) + parseFloat($ini) + parseFloat($inno) + parseFloat($flex);
//returns NaN
$total = parseInt($qty) + parseInt($qly) + parseInt($js) + parseInt($psd) + parseInt($org) + parseInt($coop) + parseInt($punc) + parseInt(comm) + parseInt($inter) + parseInt($ini) + parseInt($inno) + parseInt($flex);
//returns NaN
$sum = parseFloat($qty) + parseFloat($qly) + parseFloat($js) + parseFloat($psd) + parseFloat($org) + parseFloat($coop) + parseFloat($punc) + parseFloat(comm) + parseFloat($inter) + parseFloat($ini) + parseFloat($inno) + parseFloat($flex);
$total = parseFloat($sum);
//returns NaN
我做错了什么还是错过了什么?
答案 0 :(得分:1)
在获得$ total的同时,您需要将所有单个值解析为number,那么您将不会获得NaN。
$ total = $ qty + $ qly + $ js + $ psd + $ org + $ coop + $ punc + $ comm + $ inter + $ ini + $ inno + $ flex; //返回7.5555552.52.52.52.52.52.52.5
返回值有许多小数,因为它们被当作字符串并附加了。
也要这样更改。 var $ qty =滑块== 1 &&!isNaN(parseFloat($(“#qty”)。val()))?val:parseFloat($(“#qty”)。val());