我试图在不使用圆形或圆形的情况下实现MatLab中存在的圆函数。这仅仅是面试的一种做法。我的思维过程如此:我知道我需要使用函数floor和ceil。我想让我不先没有基础知识跳转到代码,所以这是我对原型的想法,函数x = f(z,d),其中z是要舍入的数字,d是数字的位数。
答案 0 :(得分:1)
这种问题可以并且经常(有时可能经常)通过一些聪明的解决方案来解决。例如,可以通过将边际添加到数字然后使用楼层来解决此问题。
function y = myround(x, n)
dec = (10^n);
y = floor(x*dec+0.5);
y = y/dec;
因此,如果位置n+1
的小数位数为0.5或更大,则会在第n个小数点加一个。
修改强>
这可以通过2参数round
完成。
round(123.456,2)
ans =
123.4600