Excel公式到Javascript,工作正常但不一致

Excel公式到Javascript,工作正常但不一致,javascript,excel,Javascript,Excel,在得到一致的结果时遇到问题,希望能得到一些建议,于是我自己尝试解决这个问题,结果遇到了麻烦 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是否可以扩展到该数字的预定结果。。。 如果D15=“t”对于陷阱,它保持在100.00。。。。

在得到一致的结果时遇到问题,希望能得到一些建议,于是我自己尝试解决这个问题,结果遇到了麻烦

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是否可以扩展到该数字的预定结果。。。
如果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>

Excel公式到JavaScript
var num1=170.00;
var acc1=(num1+0.625)/(6.25-0.50);
var acc2=数学四舍五入((acc1*10)/10)*6.25+(4.125+0.50);
文件。写入(acc2)。固定(3);

num1=30.00结果应为42.125“…结果不正确!

num1=40.00结果应为54.625”。。。。结果不正确!

num1=57.00结果应为73.365“…结果不正确!

num1=85.00结果应为98.375”。。。结果正确

当num1=100.00时,结果应为117.125“…结果正确

似乎77下的任何输入结果都不正确
在你的excel公式中,你是在向上取整。所以当
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”,

后面加逗号如果你想将Excel电子表格转换成Javascript,你可以使用开源库formula.js,由Stoic开发,它实现了大多数Excel函数

在这里:

另外,我正在开发一个在线软件,它可以将OpenDocument Calc立即转换为HTML+JS。有一个演示版本可以用于少于10个公式的电子表格

在这里:

祝你的项目好运

比尔,
Nicolas

很好,很快乐,数学。ceil解决方案每次都非常有效!谢谢