为什么我不能在 2 个检索值的总和后执行 toFixed() 函数?
Why I can't perform the toFixed() function after the sum of 2 retrieved values?
进入 JQuery 脚本 我在尝试对数字使用 toFix() JavaScript 方法时遇到以下问题。
所以我有以下情况:
var anticipoProgetto = $("#valoreAnticipo").text();
var saldoProgetto = $("#valoreSaldo").text();
var anticipoCalcolato = (saldoProgetto + anticipoProgetto);
console.log("ANTICIPO CALCOLATO: " + anticipoCalcolato);
anticipoCalcolato = anticipoCalcolato.toFixed(2);
$("#anticipoModaleUlterioreSaldo").val(anticipoCalcolato);
console.log()显示:
ANTICIPO CALCOLATO: 2192.002200.37
所以这意味着 JavaScript 正确执行了加法。
问题是我们尝试执行此行以获得只有 2 位小数的值:
anticipoCalcolato = anticipoCalcolato.toFixed(2);
在 FireBug 控制台中,我收到此消息错误:
TypeError: anticipoCalcolato.toFixed is not a function
anticipoCalcolato = anticipoCalcolato.toFixed(2);
为什么?我错过了什么?我该如何解决这个问题?
数学错误,因为您将两个字符串相加,而不是两个数字。而他 toFixed 错误是因为你试图在字符串上使用 toFixed,但该方法只存在于数字上。
阅读时将字符串转换为数字.text()
var anticipoProgetto = parseFloat($("#valoreAnticipo").text()),
saldoProgetto = parseFloat($("#valoreSaldo").text()),
anticipoCalcolato = anticipoProgetto + saldoProgetto,
fixed = anticipoCalcolato.toFixed(2);
@espacarello 是正确的,您需要从字符串转换为数字。在阅读时投射它们可能更符合您的意图。
如果#valoreAnticipo 是输入元素,请考虑切换到 .val() 而不是 .text()
var anticipoProgetto = parseFloat($("#valoreAnticipo").text()) || 0;
var saldoProgetto = parseFloat($("#valoreSaldo").text()) || 0;
var anticipoCalcolato = (saldoProgetto + anticipoProgetto);
console.log("ANTICIPO CALCOLATO: " + anticipoCalcolato);
anticipoCalcolato = anticipoCalcolato.toFixed(2);
$("#anticipoModaleUlterioreSaldo").val(anticipoCalcolato);
进入 JQuery 脚本 我在尝试对数字使用 toFix() JavaScript 方法时遇到以下问题。
所以我有以下情况:
var anticipoProgetto = $("#valoreAnticipo").text();
var saldoProgetto = $("#valoreSaldo").text();
var anticipoCalcolato = (saldoProgetto + anticipoProgetto);
console.log("ANTICIPO CALCOLATO: " + anticipoCalcolato);
anticipoCalcolato = anticipoCalcolato.toFixed(2);
$("#anticipoModaleUlterioreSaldo").val(anticipoCalcolato);
console.log()显示:
ANTICIPO CALCOLATO: 2192.002200.37
所以这意味着 JavaScript 正确执行了加法。
问题是我们尝试执行此行以获得只有 2 位小数的值:
anticipoCalcolato = anticipoCalcolato.toFixed(2);
在 FireBug 控制台中,我收到此消息错误:
TypeError: anticipoCalcolato.toFixed is not a function
anticipoCalcolato = anticipoCalcolato.toFixed(2);
为什么?我错过了什么?我该如何解决这个问题?
数学错误,因为您将两个字符串相加,而不是两个数字。而他 toFixed 错误是因为你试图在字符串上使用 toFixed,但该方法只存在于数字上。
阅读时将字符串转换为数字.text()
var anticipoProgetto = parseFloat($("#valoreAnticipo").text()),
saldoProgetto = parseFloat($("#valoreSaldo").text()),
anticipoCalcolato = anticipoProgetto + saldoProgetto,
fixed = anticipoCalcolato.toFixed(2);
@espacarello 是正确的,您需要从字符串转换为数字。在阅读时投射它们可能更符合您的意图。
如果#valoreAnticipo 是输入元素,请考虑切换到 .val() 而不是 .text()
var anticipoProgetto = parseFloat($("#valoreAnticipo").text()) || 0;
var saldoProgetto = parseFloat($("#valoreSaldo").text()) || 0;
var anticipoCalcolato = (saldoProgetto + anticipoProgetto);
console.log("ANTICIPO CALCOLATO: " + anticipoCalcolato);
anticipoCalcolato = anticipoCalcolato.toFixed(2);
$("#anticipoModaleUlterioreSaldo").val(anticipoCalcolato);