我想添加两个数字并显示总数 - 删除逗号会破坏函数
I want add two numbers and display the total - removing the comma breaks the function
我想将两个数字相乘并显示在 table 的末尾。
在我尝试删除逗号之前,代码一直有效。这是代码:
$(document).ready(function () {
function calc() {
var $no1 = ($.trim($('.no1').val()) != '' && !isNaN($('.no1').val())) ? parseFloat($('.no1').val()) : 0;
var $no1 = ($('no1.').val()).replace(/,/g, '');
console.log($no1);
var $price1 = $(.trim($('.price1').val()) != '' && !isNaN($('.price1').val())) ? parseFloat($('.price1').val()) : 0;
var $price1 = ($('.price1.').val()).replace(/,/g, '');
console.log($price1);
var n = $no1 * $price1;
$('.sum1').val(n.toFixed(2));
}
$('.key1').keyup(function () {
calc();
});
});
替换后需要再次解析为float!
替换创建一个字符串,如您在此处所见:
https://www.w3schools.com/jsref/jsref_replace.asp
试试这个:
var No1 = $.trim($('.no1').val()).replace(/,/g, '');
var $no1 = No1 != '' && !isNaN(parseFloat(No1)) ? parseFloat(No1) : 0;
var Price1 = $.trim($('.price1').val().replace(/,/g, '');
var $price1 = Price1 != '' && !isNaN(parseFloat(Price1)) ? parseFloat(Price1) : 0;
而不是
var $no1 = ($.trim($('.no1').val()) != '' && !isNaN($('.no1').val())) ? parseFloat($('.no1').val()) : 0;
var $no1 = ($('no1.').val()).replace(/,/g, '');
//
var $price1 = $(.trim($('.price1').val()) != '' && !isNaN($('.price1').val())) ? parseFloat($('.price1').val()) : 0;
var $price1 = ($('.price1.').val()).replace(/,/g, '');
错误是因为您正在分配同一个变量,该变量的浮点解析值被逗号替换为字符串。
因此,$no1 和 $price1 中的值将是字符串。逗号替换后。
此代码替换浮点解析之前第一个表达式本身中的逗号。所以,$no1 和 $price1 是浮动的。
希望对您有所帮助。
我想将两个数字相乘并显示在 table 的末尾。
在我尝试删除逗号之前,代码一直有效。这是代码:
$(document).ready(function () {
function calc() {
var $no1 = ($.trim($('.no1').val()) != '' && !isNaN($('.no1').val())) ? parseFloat($('.no1').val()) : 0;
var $no1 = ($('no1.').val()).replace(/,/g, '');
console.log($no1);
var $price1 = $(.trim($('.price1').val()) != '' && !isNaN($('.price1').val())) ? parseFloat($('.price1').val()) : 0;
var $price1 = ($('.price1.').val()).replace(/,/g, '');
console.log($price1);
var n = $no1 * $price1;
$('.sum1').val(n.toFixed(2));
}
$('.key1').keyup(function () {
calc();
});
});
替换后需要再次解析为float!
替换创建一个字符串,如您在此处所见: https://www.w3schools.com/jsref/jsref_replace.asp
试试这个:
var No1 = $.trim($('.no1').val()).replace(/,/g, '');
var $no1 = No1 != '' && !isNaN(parseFloat(No1)) ? parseFloat(No1) : 0;
var Price1 = $.trim($('.price1').val().replace(/,/g, '');
var $price1 = Price1 != '' && !isNaN(parseFloat(Price1)) ? parseFloat(Price1) : 0;
而不是
var $no1 = ($.trim($('.no1').val()) != '' && !isNaN($('.no1').val())) ? parseFloat($('.no1').val()) : 0;
var $no1 = ($('no1.').val()).replace(/,/g, '');
//
var $price1 = $(.trim($('.price1').val()) != '' && !isNaN($('.price1').val())) ? parseFloat($('.price1').val()) : 0;
var $price1 = ($('.price1.').val()).replace(/,/g, '');
错误是因为您正在分配同一个变量,该变量的浮点解析值被逗号替换为字符串。
因此,$no1 和 $price1 中的值将是字符串。逗号替换后。
此代码替换浮点解析之前第一个表达式本身中的逗号。所以,$no1 和 $price1 是浮动的。
希望对您有所帮助。