将特定的Excel论坛转换为Javascript

我试图将这个特定的公式从Excel电子表格转换为Javascript

ROUND(-E10*(E21-E11)*E13/100,-1) 

这是我现在在我的Javascript中

 Math.round(-$scope.E10 * ($scope.E21 - $scope.E11 ) * $scope.E13 / 100); 

这给了我一个不同的价值,问题是Excel的方式,因为在Excel公式的末尾,我不明白,找不到任何Excel手册中的数字。

有人可以帮我解释一下,-1 Excel中的,-1函数实际上是做什么的?

我在计算过程中使用的值是

E10 = 11000

E11 = 5.2

E13 = 1.40

E21 = 4.8

这些值在我的Javascript和Excel工作表中完全一样。 在Excel中的结果是60,而我的Javascript返回61.如果我改变,-1在Excel中的计算符合我的JavaScript,但我需要做相反的,匹配我的Javascript的Excel。

第二个参数(在你的例子中为-1)为ROUND函数指定在近似值上使用多less个数字。

  • 0将在math上近似于最接近的整数。
  • 正数(n)将近似使用最多的n个有效数字 – 即。 ROUND(1.23456,3)= 1,235
  • 负数(-n)将接近第一个有效整数位数,然后将“0”作为填充添加到其余位置 – 即。 ROUND(1.23456,-1)= 0,ROUND(12.3456,-1)= 10,ROUND(123456.7,-4)= 123500

在js中,Excel的圆形看起来像这样:

 function excelRound(val, num) { var coef = Math.pow(10, num); return (Math.round(val * coef))/coef } excelRound(-$scope.E10 * ($scope.E21 - $scope.E11 ) * $scope.E13 / 100, -1); 

我认为http://office.microsoft.com/en-001/excel-help/round-function-HP010342858.aspx可以帮助你回答你的问题。

ROUND(number, num_digits)

  • 如果num_digits大于0(零),则数字四舍五入到指定的小数位数。
  • 如果num_digits为0,则数字四舍五入到最接近的整数。
  • 如果num_digits小于0,则数字四舍五入到小数点左侧。
  • 总是四舍五入(远离零),使用ROUNDUPfunction。
  • 总是舍入(朝零),使用ROUNDDOWN函数。
  • 要将数字四舍五入为特定倍数(例如,舍入到最接近的0.5),请使用MROUND函数。