我如何正确地将这些从表单的输入标签中检索到的字符串对象转换为数字,通过这个JQuery函数?

8 浏览
0 Comments

我如何正确地将这些从表单的输入标签中检索到的字符串对象转换为数字,通过这个JQuery函数?

我对JavaScript和JQuery还不太熟悉,在一个JQuery函数中,我遇到了一个奇怪的问题,它涉及一个简单的数学求和。该函数从一个JSP页面中的一些输入字段中检索数字(由于这些值是从jsp模型对象中获取的,所以无法在JSFiddle中展示)。\n以下是我的JQuery函数:\n

$("#variazioneUlterioreSaldoInput").bind('change keyup', function() {
    console.log("VALUE CHANGED !!!");
    var ulterioreSaldo = $("#variazioneUlterioreSaldoInput").val();     // 这个值没有千位分隔符或小数点,所以不需要进行替换
    var saldo = $("#saldo").val().replace(/[^0-9,]/g, '').replace(",","."); 
    var anticipo = $("#anticipo").val().replace(/[^0-9,]/g, '').replace(",","."); 
    var totalePagamento = parseFloat(ulterioreSaldo) + parseFloat(saldo) + parseFloat(anticipo);
    console.log("ulterioreSaldo: " + ulterioreSaldo );
    console.log("ulterioreSaldo type: " + typeof ulterioreSaldo);   
    console.log("saldo: " + saldo);
    console.log("saldo type: " + typeof saldo); 
    console.log("anticipo: " + anticipo);
    console.log("anticipo type: " + typeof anticipo); 
    console.log("totalePagamento: " + totalePagamento);
    console.log("totalePagamento type: " + typeof totalePagamento);   
});

\n这个函数从3个不同的输入字段中检索并求和了3个值。\n对于从具有id=\"saldo\"和id=\"anticipo\"的输入标签中检索到的值,我应用了2个正则表达式进行替换,因为这些是表示格式化数字的字符串,所以在求和之前,我需要得到一个普通数字。\n问题在于,当我通过以下代码进行求和时:\n

var totalePagamento = parseFloat(ulterioreSaldo) + parseFloat(saldo) + parseFloat(anticipo);

\n我得到了错误的输出:totalePagamento: 0.010.004499.48。这是在FireBug控制台中的完整日志。\n你可以看到,我还打印了获取到的对象的类型,似乎它们是字符串而不是数字,所以当我使用\"+\"运算符时,这些值被连接在一起而不是求和。\n如何将这些值正确转换为数字并进行求和呢?

0
0 Comments

问题的原因是从表单的输入标签中获取的值是字符串对象,而需要将其转换为数字。解决方法是使用parseFloat()函数将字符串转换为数字。该函数解析一个字符串参数并返回一个浮点数。

以下是一个示例代码,演示如何正确地将字符串转换为数字:

$(document).ready(function(){
    var ulterioreSaldo = "0.01";
    var saldo = "0.0";
    var anticipo = "4499.48";
    var sum = parseFloat(ulterioreSaldo) + parseFloat(saldo) + parseFloat(anticipo);
    alert(sum);
});

你可以点击此处查看示例演示。

通过使用parseFloat()函数,我们可以确保从表单中获取的字符串值正确地转换为数字,以便进行数学运算或其他需要数字类型的操作。

0
0 Comments

问题的原因是在使用JQuery函数从表单的输入标签中检索到的字符串对象无法直接转换为数字。解决方法是使用parseFloat()函数将这些字符串对象正确地转换为数字。然后,使用parseFloat()函数将每个字符串对象转换为浮点数,并使用加法运算符将它们相加。最后,使用toFixed()函数将结果保留两位小数。以下是解决问题的代码示例:

var totalePagamento = parseFloat(ulterioreSaldo) + parseFloat(saldo) + parseFloat(anticipo);
totalePagamento = totalePagamento.toFixed(2);

0
0 Comments

问题原因:在使用JQuery函数从表单的输入标签中检索到的字符串对象需要正确转换为数字时,可能会出现以下问题:

1. 字符串对象不能直接进行数值计算,需要将其转换为数字类型。

2. 字符串对象可能包含小数,需要将其转换为浮点数类型。

3. 如果需要保留小数点后两位,还需要进行四舍五入。

解决方法:为了解决上述问题,可以采取以下步骤:

1. 使用parseFloat方法将字符串对象转换为浮点数类型。示例代码如下:

var totalePagamento = parseFloat(ulterioreSaldo) + parseFloat(saldo) + parseFloat(anticipo);

2. 如果需要保留小数点后两位,可以使用toFixed方法进行四舍五入。示例代码如下:

totalePagamento.toFixed(2);

通过以上方法,可以正确将从输入标签中检索到的字符串对象转换为数字,并进行数值计算和格式化。

0