Rounding to n significant digits

二次信任 提交于 2019-11-26 18:36:14

问题


I'm trying to write code in MATLAB that will round number to certain (as I ask) significant digits.

I'm not sure how to do it. Any suggestions?


回答1:


To round to d significant digits:

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

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

To round to d decimal digits:

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

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

EDIT

Actually it's easier: the round function supports these options:

>> 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


来源:https://stackoverflow.com/questions/26917900/rounding-to-n-significant-digits

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!