将特定的Excel公式转换为Javascript
Convert specific Excel formula to Javascript
我正在尝试将此特定公式从 excel 电子表格转换为 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工作表中完全相同。Excel中的结果是60,而我的Javascript返回61。如果我更改,-1
以,1
Excel中的计算与Javascript中的计算匹配,但是我需要做相反的操作并将我的Javascript与excel匹配。
第二个参数(示例中为 -1)向 ROUND 函数指定在近似上使用多少位。
- 0 在数学上近似于最接近的整数。
- 正数 (n) 将使用最多的 n 个有效数字近似 - 即。舍入(1.23456, 3) = 1,235
- 负数 (-n) 将近似于第一个有效整数数字,然后添加"0"作为其余部分的填充 - 即。舍入(1.23456, -1) = 0, 舍入(12.3456, -1) = 10, 舍入(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,则数字将四舍五入到小数点的左侧。
- 要始终向上舍入(远离零),请使用 ROUNDUP 函数。 要始终向下舍入
- (朝零),请使用向下舍入函数。
- 若要将数字舍入为特定的倍数(例如,舍入到最接近的 0.5),请使用 MROUND 函数。
相关文章:
- 使用键/代码转换JavaScript数组
- NS_ERROR_XPC_BAD_CONVERT_JS:无法转换JavaScript参数arg 0[nsIDOMWind
- 转换Javascript中的DayOfYear值以用于Flot
- 转换Javascript日期格式
- 字符串大小写转换 javascript
- 一个很好的文本到语音转换JavaScript库
- JQuery 函数突然停止工作,转换 Javascript 参数时出错
- 转换 JavaScript 代码
- 需要转换Javascript数组的格式
- 转换javascript中的日期格式
- 循环以转换JavaScript对象
- jQuery Post中的错误:无法转换JavaScript参数
- UglifyJS转换javascript代码
- Html到Haml的转换javascript
- 正在转换Javascript日期
- 转换Javascript关联对象并用PHP输出
- 转换JavaScript'这'到jQuery'$(这个)'
- 转换JavaScript数组
- 无法转换JavaScript参数arg 0 [nsIDOMWindow.getComputedStyle]
- jQuery美元.Firefox中的ajax错误:"无法转换JavaScript参数"