我是JavaScript和jQuery的新手,我发现以下问题试图执行一个简单的总和。
所以我有以下情况:
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
所以问题是它似乎仍然将这些值看作String并且进行连接而不是总和 我错过了什么?我该如何尝试解决这个问题?
答案 0 :(得分:4)
正如你所看到的,我对每个求和值都做了一个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);
答案 1 :(得分:1)
toFixed()返回字符串,这就是你没有得到总和的原因。 请访问以下链接了解更多详情。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed
var anticipoCalcolato = parseFloat(saldoProgetto) + parseFloat(anticipoProgetto);
var ulterioreSaldo = parseFloat($("#variazioneUlterioreSaldoInput").val());
var totalePagamento = anticipoCalcolato + ulterioreSaldo;
console.log("ANTICIPO RICALCOLATO: " + anticipoCalcolato + " ULTERIORE SALDO: " + ulterioreSaldo + " TOTALE PAGAMENTO: " + totalePagamento);