遇到问题得到一致的结果,希望有一些指针尝试解决这个问题,我自己也会碰壁。
Excel公式:
=IF(C15=""," ",IF(D15="O"(((ROUNDUP(((C15+0.625)/(6.25-0.5)),0)*6.25))+4.125+0.5),IF(D15="t",C15,"ERROR")))
C15= 100.00
逻辑测试..
D15="O"
第二次逻辑测试,验证100.00可以扩展到该数字的预定结果......
被困的if D15="t"
留在100.00
....
我可以稍后用“if else”替换逻辑测试,仍在学习
<html>
<head>
<title>Excel Formula to JavaScript</title>
</head>
<body>
<script type="text/javascript">
var num1 = 170.00;
var acc1 = (num1 + 0.625)/(6.25-0.50);
var acc2 = Math.round((acc1 * 10) / 10) * 6.25 + (4.125 + 0.50);
document.write(acc2).toFixed(3);
</script>
<div>
<br>
num1= 30.00 result should be 42.125".... incorrect result!
<br>
<br>
num1= 40.00 result should be 54.625".... incorrect result!
<br>
<br>
num1= 57.00 result should be 73.365".... incorrect result!
<br>
<br>
num1= 85.00 result should be 98.375"... result correct
<br>
<br>
when num1= 100.00 result should be 117.125"... result correct
<br>
<br>
seems any input under 77 result will be incorrect
</div>
</body>
</html>
答案 0 :(得分:1)
在您的Excel方程式中,您将四舍五入 UP 。因此,当C15
为30
时,acc1
为5.326087
并且excel综合将此结果带到6
。 Javascript Math.Round(5.326087)
四舍五入到最近的整数,因此结果为5
。这足以摒弃你的最终结果。
您可以将Excel更改为Round
而不是RoundUp
,或者您可以将您的javascript更改为Math.ceil((acc1 * 10) / 10)
请勿忘记IF(D15="O",
答案 1 :(得分:-1)
如果您想将Excel电子表格转换为Javascript,您可以使用由Stoic开发的OpenSource库formula.js,它实现了大部分Excel函数
就在这里:http://stoic.com/formula/
否则我正在开发一个在线软件,可以立即将OpenDocument Calc转换为HTML + JS。有一个演示版本适用于少于10个公式的电子表格。
就在这里:http://appizy.com
祝你的项目好运。
BR, 尼古拉斯