将特定 Excel 公式转换为 Javascript
Convert specific Excel formula to Javascript
我正在尝试将此特定公式从 excel 价差 sheet 转换为 Javascript
ROUND(-E10*(E21-E11)*E13/100,-1)
这就是我 Javascript 现在
中的内容
Math.round(-$scope.E10 * ($scope.E21 - $scope.E11 ) * $scope.E13 / 100);
这给了我一个不同的值,问题是 Excel 对数字进行四舍五入的方式,因为 Excel 公式末尾的 ,-1
我不知道理解但无法在任何 excel 手册中找到它。
谁能帮我解释一下 Excel 轮函数中的 ,-1
到底做了什么?
我在计算过程中使用的值是
E10 = 11000
E11 = 5.2
E13 = 1.40
E21 = 4.8
我的 Javascript 和 Excel sheet 中的值完全相同。 Excel 中的结果是 60,而我的 Javascript returns 中的结果是 61。如果我将 ,-1
更改为 ,1
,则 Excel 中的计算与我的匹配在 Javascript 中,但我需要做相反的事情,将我的 Javascript 匹配到 excel。
我认为 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,则四舍五入到小数点左边
- 要始终向上舍入(远离零),请使用 ROUNDUP 函数。
- 要始终向下舍入(向零),请使用 ROUNDDOWN 函数。
- 要将数字舍入到特定倍数(例如,舍入到最接近的 0.5),请使用 MROUND 函数。
第二个参数(在您的示例中为 -1)指定 ROUND 函数在近似值上使用多少位数。
- 0 在数学上近似于最接近的整数。
- 正数 (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);
我正在尝试将此特定公式从 excel 价差 sheet 转换为 Javascript
ROUND(-E10*(E21-E11)*E13/100,-1)
这就是我 Javascript 现在
中的内容Math.round(-$scope.E10 * ($scope.E21 - $scope.E11 ) * $scope.E13 / 100);
这给了我一个不同的值,问题是 Excel 对数字进行四舍五入的方式,因为 Excel 公式末尾的 ,-1
我不知道理解但无法在任何 excel 手册中找到它。
谁能帮我解释一下 Excel 轮函数中的 ,-1
到底做了什么?
我在计算过程中使用的值是
E10 = 11000
E11 = 5.2
E13 = 1.40
E21 = 4.8
我的 Javascript 和 Excel sheet 中的值完全相同。 Excel 中的结果是 60,而我的 Javascript returns 中的结果是 61。如果我将 ,-1
更改为 ,1
,则 Excel 中的计算与我的匹配在 Javascript 中,但我需要做相反的事情,将我的 Javascript 匹配到 excel。
我认为 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,则四舍五入到小数点左边
- 要始终向上舍入(远离零),请使用 ROUNDUP 函数。
- 要始终向下舍入(向零),请使用 ROUNDDOWN 函数。
- 要将数字舍入到特定倍数(例如,舍入到最接近的 0.5),请使用 MROUND 函数。
第二个参数(在您的示例中为 -1)指定 ROUND 函数在近似值上使用多少位数。
- 0 在数学上近似于最接近的整数。
- 正数 (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);