我在JavaScript中有这个代码:
SolarPanels = parseInt(lRemainingWidth / (panel_width + ( 2 * lPanelInterSpace)));
Run Code Online (Sandbox Code Playgroud)
然后我提醒作为输出的SolarPanels
值NaN
,
alert("SolarPanels "+SolarPanels);
Run Code Online (Sandbox Code Playgroud)
这1线是一个巨大的计算的一小部分,但我的代码似乎在这里失败,使用警报的我已经读出的值SolarPanels
,lRemainingWidth
,panel_width
和lPanelInterSpace
它有以下几种:
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)
你的问题是你混合了字符串和数字
在任何计算之前从这段代码开始:
var roof_ridge = parseFloat(roof_ridge);
Run Code Online (Sandbox Code Playgroud)
您的代码中可能隐藏了其他字符串,但我们看不到它们.对它们应用相同的转换.