Javascript数学是加入而不是加入
我正在尝试运行一些计算,但我的一个变量将这些数字连接在一起,而不是相加,下面是我的代码:Javascript数学是加入而不是加入,javascript,Javascript,我正在尝试运行一些计算,但我的一个变量将这些数字连接在一起,而不是相加,下面是我的代码: var pdfAround = parseFloat($('#direct_size_around').val()); var qtyAround = parseFloat($('#direct_qty_around').val()); var toothSize = parseFloat($('#direct_tooth_size').val()); var gearNum = p
var pdfAround = parseFloat($('#direct_size_around').val());
var qtyAround = parseFloat($('#direct_qty_around').val());
var toothSize = parseFloat($('#direct_tooth_size').val());
var gearNum = parseFloat($('#gearNum').val());
var gearRepeat = parseFloat(toothSize * gearNum).toFixed(2);
var gapAround = parseFloat((gearRepeat / qtyAround) - pdfAround).toFixed(3);
var sizeAround = parseFloat(pdfAround + gapAround);
var repeatPlus = parseFloat(gearRepeat + 0.5).toFixed(2);
var repeatMinus = parseFloat(gearRepeat - 0.5).toFixed(2);
当我得到的结果似乎都是正确的,但var sizeAround不是,我得到的是503.975,而不是50+3.795=53.795
我对Javascript不是很在行,我相信我可能会误解如何使用parseFloat,因为
gapAround
是一个字符串,因此是串联的。你可以试试下面的
var sizeAround = pdfAround + parseFloat(gapAround);
此电话:
parseFloat(pdfAround + gapAround);
解析字符串之前,先解析字符串pdfAround
和gapAround
。尝试:
parseFloat(pdfAround ) + parseFloat(gapAround);
问题在于调用
toFixed()
parseFloat()
解析字符串并返回浮点数
toFixed()
将数字转换为具有指定小数位数的字符串
所以当你这样做的时候:
var gapAround = parseFloat((gearRepeat / qtyAround) - pdfAround).toFixed(3);
您正在将作为浮点的parseFloat((gearRepeat/qtyAround)-pdfAround)
的结果转换为字符串,并将其存储在gapAround
这意味着:
var sizeAround = parseFloat(pdfAround + gapAround);
将是一个串联操作,不是加法,因为pdfAround
是一个浮点,而gapAround
是一个字符串
要解决此问题,应删除对toFixed()
的所有调用:
var pdfAround = parseFloat($('#direct_size_around').val());
var qtyAround = parseFloat($('#direct_qty_around').val());
var toothSize = parseFloat($('#direct_tooth_size').val());
var gearNum = parseFloat($('#gearNum').val());
var gearRepeat = toothSize * gearNum;
var gapAround = (gearRepeat / qtyAround) - pdfAround;
var sizeAround = pdfAround + gapAround;
var repeatPlus = gearRepeat + 0.5;
var repeatMinus = gearRepeat - 0.5;
这是因为
toFixed()
返回的是字符串而不是数字。pdfAround
不是字符串。@explv-My bad-不正确的副本。它被封了。我已经改正了。谢谢。pdfAround
不是字符串。