我有一个带有小数部分的数字,但 Google 表格 ROUND 函数仅适用于 places 参数中指定的第一个数字:
- 1.48852 => 圆形(1.48852) => 1
- 1.48852 => ROUND(ROUND(ROUND(ROUND(ROUND(ROUND(1.48852,5),4),3),2),1),0) => 2
谷歌表格中的任何功能是否可以如第二种情况所示工作?基本上,我想要像 ROUND 这样的东西,但递归地工作。
我有一个带有小数部分的数字,但 Google 表格 ROUND 函数仅适用于 places 参数中指定的第一个数字:
谷歌表格中的任何功能是否可以如第二种情况所示工作?基本上,我想要像 ROUND 这样的东西,但递归地工作。
要直接回答您的问题,不,我不相信有任何函数可以实现递归舍入(或任何递归)。
但是,以您在提出这个问题时表现出的相同程度的好奇心,我研究了如何通过脚本实现递归结果。这就是结果。
function reround(input) {
var num1 = 5;
do {
input = input.toFixed(num1);
input=+input;
num1--;
}while (num1 >-1); // continue running the loop while is greater than -1, i.e. until num1 = 0
return input;
}
此代码作为脚本输入,然后该函数可在电子表格中使用。它只需要一个参数(值),因为位置的数量已编码到脚本中。但毫无疑问,可以修改代码以接受小数位数作为参数(我没那么好奇;)。
这是常规和递归舍入的每个阶段的值序列。
这是来自 REROUND 过程的值的日志。
有趣的是要注意小数点后三位的差异。这不是我探索过的东西,所以我没有解释。