Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

how rounde no. if third digit after floating more than 5

Asked by huda nawaf on 9 Apr 2013

hi, I want raounded a number, so I read this link about that http://www.mathworks.com/matlabcentral/answers/37262 But in this case , it rounde any no. ,while I want rounde number meet a condition. for example:

0.2371 be 0.2400

or

0.4546 be 0.4600

but this number 0.2330 , must be not equal 0.2400, must be the same i.e I want round number if the third digit after floating point equal or more than 5

Thanks in advance

2 Comments

Walter Roberson on 9 Apr 2013

Then why would 0.4546 round to 0.4600 and not to .4500, considering that the third digit is not equal or more than 5 ?

Are you wanting to do this numerically or for display purposes?

huda nawaf on 10 Apr 2013

thanks, I supposed 0.4546 is equal 0.4550.

currently, I want it just for display.

huda nawaf

Tags

Products

No products are associated with this question.

2 Answers

Answer by Walter Roberson on 10 Apr 2013
Accepted answer
sprintf('%.2f00', round(N * 100) / 100)

Though I admit to being puzzled as to why you want the misleading '00' at the end, why you want 0.2400 instead of 0.24

1 Comment

huda nawaf on 11 Apr 2013

no , I mean 0.24

thanks, sprints works

Walter Roberson
Answer by Jan Simon on 10 Apr 2013

If you want it just for displaying, what about:

sprintf('%.3f\n', [0.2371, 0.4546])

I'd definitly omit the trilaing zero, because it is not only confusing, but wrong.

1 Comment

huda nawaf on 11 Apr 2013

thanks simon

Jan Simon

Contact us