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
不是字符串。