得到NaN错误,无法弄清楚原因

not*_*777 1 javascript math

我在JavaScript中有这个代码:

SolarPanels = parseInt(lRemainingWidth / (panel_width + ( 2 * lPanelInterSpace)));
Run Code Online (Sandbox Code Playgroud)

然后我提醒作为输出的SolarPanelsNaN,

alert("SolarPanels "+SolarPanels); 
Run Code Online (Sandbox Code Playgroud)

这1线是一个巨大的计算的一小部分,但我的代码似乎在这里失败,使用警报的我已经读出的值SolarPanels,lRemainingWidth,panel_widthlPanelInterSpace 它有以下几种:

lRemainingwidth = 17.4.320227272727276
SolarPanels = 0
panel_width = 1.65
lPanelInterSpace = 0.02
Run Code Online (Sandbox Code Playgroud)

我认为它与2个点有关lRemainingWidth,无论哪种方式,我都不知道如何解决它.为什么lRemainingWidth有2个点?


更新:

这是计算lRemainingWidth的部分:

    if(HalforDouble === "Yes")
    {
        lRemainingWidth = (roof_ridge /2) + ((lRemainingHeight / Math.tan((lRoofEdgeDegrees * Math.PI) / 180)) - lRoofEdge);            
    }

    else
    {
        lRemainingWidth = roof_ridge + (2 * ((lRemainingHeight / Math.tan((lRoofEdgeDegrees * Math.PI) / 180)) - lRoofEdge));
    }
Run Code Online (Sandbox Code Playgroud)

这里的值是:

lRemainingWidth = 0
roof_ridge = 17
lRemainingHeight = 20.769000000000002
lRoofEdgeDegrees = 83.5169263071276
lRoofEdge = 0.2
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 7

你的问题是你混合了字符串和数字

在任何计算之前从这段代码开始:

var roof_ridge = parseFloat(roof_ridge);
Run Code Online (Sandbox Code Playgroud)

您的代码中可能隐藏了其他字符串,但我们看不到它们.对它们应用相同的转换.