【问题标题】:Matlab Implementation of Round Function轮函数的matlab实现
【发布时间】:2016-01-15 05:49:08
【问题描述】:

我试图在不使用round 或roundn 的情况下实现MatLab 中存在的round 函数。这只是作为面试的练习。我的思考过程是这样的:我知道我需要使用 floor 和 ceil 函数。我想在没有先了解基础知识的情况下让我不要跳入代码,所以这是我对原型的想法,函数 x = f(z, d),其中 z 是要四舍五入的数字,d 是位数.

【问题讨论】:

  • 你有什么问题?

标签: matlab rounding


【解决方案1】:

这类问题可以而且经常(有时可能过于频繁)通过一些巧妙的解决方案来解决。例如,可以通过将边际添加到数字然后使用 floor 来解决此问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2015-01-29
    • 1970-01-01
    相关资源
    最近更新 更多