执行excel的ROUND函数

你将如何实现一个ROUND函数:

ROUND(value, number of digits) pi=3.14159265358979323 so, for example, ROUND(pi, 3) = 3.142 

如果你有这些function在你的处置:
AINT – 将值截断为整数
ANINT – 计算最近的整数
NINT – 向参数返回最接近的整数

或从来没有意识到上述function,浮动ROUND是如何完成的?

如果您不需要担心溢出,请执行以下操作:

 ROUND(value, nod) = NINT(value * POWER(10, nod)) / POWER(10, nod) 

否则,你需要分别处理整数部分和浮点部分。

我会假设,请原谅我的伪代码

 function Round(value, num){ numsToSave = POWER(10, num); value *= numsToSave ; //Get the numbers we don't want rounded on the left side of the floating point value = AINT( ANINT(value) ); value /= numsToSave; return value; } 

要么

 function Round(value, num){ numsToSave = POWER(10, num); value *= numsToSave ; //Get the numbers we don't want rounded on the left side of the floating point value = NINT(value); value /= numsToSave; return value; }