Javascript 为什么当我尝试对这些parseFloat()值求和时,我得到的是串联而不是数学和?
我对JavaScript和jQuery非常陌生,在尝试执行简单求和时发现以下问题 因此,我有以下情况:Javascript 为什么当我尝试对这些parseFloat()值求和时,我得到的是串联而不是数学和?,javascript,jquery,Javascript,Jquery,我对JavaScript和jQuery非常陌生,在尝试执行简单求和时发现以下问题 因此,我有以下情况: var anticipoCalcolato = (saldoProgetto + anticipoProgetto); anticipoCalcolato = parseFloat(anticipoCalcolato).toFixed(2); var ulterioreSaldo = $("#variazioneUlterioreSaldoInput").val(); ulteri
var anticipoCalcolato = (saldoProgetto + anticipoProgetto);
anticipoCalcolato = parseFloat(anticipoCalcolato).toFixed(2);
var ulterioreSaldo = $("#variazioneUlterioreSaldoInput").val();
ulterioreSaldo = parseFloat(ulterioreSaldo);
var totalePagamento = anticipoCalcolato + ulterioreSaldo;
console.log("ANTICIPO RICALCOLATO: " + anticipoCalcolato + " ULTERIORE SALDO: " + ulterioreSaldo + " TOTALE PAGAMENTO: " + totalePagamento);
因此,您可以看到,我正在尝试将这两个名为anticipoCalcolato和ulterioreSaldo的值相加到totalePagamento变量中
如您所见,我对每个求和值都执行了parseFloat()
问题是我在FireBug控制台中获得了以下结果:
TOTALE PAGAMENTO: 4392.378.36
所以问题是,它似乎仍然将这些值视为字符串,并进行串联,而不是求和
我错过了什么?如何尝试解决此问题?toFixed()返回字符串,这就是您无法获得总和的原因。
请访问以下链接了解更多详细信息
如您所见,我对每个求和值都执行了parseFloat()
请注意,您对求和值的结果使用了parseFloat()
。然后对其使用toFixed()
,返回一个字符串
当您想要使用数学运算符时,您需要确保始终使用数值类型。为此,最好只在变量向用户显示的点(或之前)使用toFixed()
。试试这个:
var anticipoCalcolato = parseFloat(saldoProgetto) + parseFloat(anticipoProgetto);
var ulterioreSaldo = parseFloat($("#variazioneUlterioreSaldoInput").val());
var totalePagamento = (anticipoCalcolato + ulterioreSaldo).toFixed(2);
console.log("ANTICIPO RICALCOLATO: " + anticipoCalcolato + " ULTERIORE SALDO: " + ulterioreSaldo + " TOTALE PAGAMENTO: " + totalePagamento);
提示:
toFixed
返回一个字符串。就像您的一样,您正在添加字符串。虽然此代码可能会工作……但没有解释,无论代码有多好,这都是一个非常低质量的答案
var anticipoCalcolato = parseFloat(saldoProgetto) + parseFloat(anticipoProgetto);
var ulterioreSaldo = parseFloat($("#variazioneUlterioreSaldoInput").val());
var totalePagamento = (anticipoCalcolato + ulterioreSaldo).toFixed(2);
console.log("ANTICIPO RICALCOLATO: " + anticipoCalcolato + " ULTERIORE SALDO: " + ulterioreSaldo + " TOTALE PAGAMENTO: " + totalePagamento);