matlab - 四舍五入到 n 位有效数字

标签 matlab floating-point digits significant-digits

我正在尝试在 MATLAB 中编写代码,将数字四舍五入到某些(如我所要求的)有效数字。

我不知道该怎么做。有什么建议吗?

最佳答案

舍入到 d 有效数字:

>> d = 3; %// number of digits
>> x = 5.237234; %// example number

>> D = 10^(d-ceil(log10(x)));
>> y = round(x*D)/D
y =
    5.2400

舍入到d 十进制数:

>> d = 3; %// number of digits
>> x = 5.237234; %// example number

>> D = 10^d;
>> y = round(x*D)/D
y =
    5.2370

编辑

实际上更简单:round函数支持这些选项:

>> d = 3;
>> x = 5.237234;
>> y = round(x, d, 'significant')
y =
    5.2400

>> d = 3;
>> x = 5.237234;
>> y = round(x, d) %// or y = round(x, d, 'decimals')
y =
    5.2370

关于matlab - 四舍五入到 n 位有效数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26917900/

相关文章:

matlab - 在 Matlab 的 for 循环中为子图创建注释框

matlab - 通过MATLAB中的fft进行卷积定理

objective-c - 来自 NSString 的精确浮点值

c - Haskell FFI/C MPFR 库包装问题

javascript - 固定位数的正则表达式?

matlab - matlab中的微分一致性

matlab - 如何检查 MATLAB 句柄是否有效?

floating-point - 32位IEEE单精度计算机数

regex - Perl:用它们的计数替换连续的数字

C程序检查数字中的数字是否为偶数