我在制作一个小设备时遇到了一些麻烦,该设备旨在为制琴师执行所有计算,以构建完美的吉他指板。
http://codepen.io/JTBennett/pen/xqgGER
该程序在 codepen 上,到目前为止,左半部分(烦恼距离计算)工作正常,尽管有意大利面条......我很累。
但是我对右侧的最终计算有疑问(公式2):
$("#fc_calc2").click(function() {
var T = $("#frN_12").html()
var St = $("input[id='St']").val()
var Sn = $("input[id='Sn']").val()
var X = (T) / ((St/Sn) - 1)
$("#formula1").text(X.toFixed(3))
var Rn = $("input[id='Rn']").val()
var D = $("input[id='radius']").val()
var Rd = ((Rn * (X + D)) / X)
$("#formula2").text(Rd.toFixed(3));
});
您可以使用以下值重新创建问题:
Scale Length = 25.1 (You must press this button to calculate the left side first)
(E to E @ Nut) = 1.406
(E to E @ 12th) = 1.719
(Nut Radius) = 12
(Radius Point) = 18.825
该问题出现在 Formula 2 字段中。对于带小数位的半径点值,结果为 NaN。对于整数,它只是重复螺母半径 (12) 的值。
我仔细检查了我的公式是否正确 - 您可以在此处查看基础:http://www.stewmac.com/How-To/Online_Resources/Neck_Building_and_Repair_and_Setup/Compound_Radius_Explained.html 在页面底部,问题出在第二个公式 (2) 上。
知道这是怎么回事吗?我不是世界上最伟大的数学魔术师,所以任何帮助将不胜感激!
问候, 乔尔
最佳答案
val()
返回一个字符串。添加两个字符串只是将它们连接起来。您可以使用一元 +
运算符将所有数字字符串转换为实际的 float ,如 Pointy在单独的评论中提到。
var a = "1";
var b = "2";
console.log(a+b); //12
var a = +"1";
var b = +"2";
console.log(a+b); //3
<小时/>
$("#fc_calc2").click(function() {
var T = +$("#frN_12").html()
var St = +$("input[id='St']").val()
var Sn = +$("input[id='Sn']").val()
var X = (T) / ((St/Sn) - 1)
$("#formula1").text(X.toFixed(3))
var Rn = +$("input[id='Rn']").val()
var D = +$("input[id='radius']").val()
var Rd = ((Rn * (X + D)) / X)
$("#formula2").text(Rd.toFixed(3));
});
关于javascript - jQuery 数学公式问题 - 结果不正确或 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42677302/