0

在获得一致的结果时遇到问题,希望一些指针尝试解决这个问题我自己碰壁了

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>
4

2 回答 2

1

在您的 excel 方程式中,您正在四舍五入。所以当C1530acc15.326087和 excel 综述带来了这个6。JavascriptMath.Round(5.326087)正在四舍五入到最接近的整数,所以它的结果是5. 这足以甩掉你的最终结果。


您可以将 excel 更改为简单地Round代替,RoundUp或者您可以将您的 javascript 更改为Math.ceil((acc1 * 10) / 10)


不要忘记后面的逗号IF(D15="O",

于 2013-10-18T03:37:48.327 回答
-1

如果要将 Excel 电子表格转换为 Javascript,可以使用 Stoic 开发的开源库 formula.js,它实现了大部分 Excel 功能

它在这里:http ://stoic.com/formula/

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

它在这里:http ://appizy.com

祝你的项目好运。

BR,尼古拉斯

于 2013-10-22T11:59:54.517 回答