Rounding a decimal down

4 views (last 30 days)
L'O.G.
L'O.G. on 2 Dec 2022
Commented: Emre Tas on 8 Aug 2023
With round(x,2) I can round a number to the nearest hundredth, but how do I round down to the nearest hundredth? For example, both 0.143 and 0.147 should become 0.14.

Accepted Answer

Matt J
Matt J on 2 Dec 2022
Edited: Matt J on 2 Dec 2022
x=0.147;
floor(x*100)/100
ans = 0.1400
  1 Comment
Emre Tas
Emre Tas on 8 Aug 2023
Thank you for your answer, it solved my meshing problem.

Sign in to comment.

More Answers (2)

Les Beckham
Les Beckham on 2 Dec 2022
x = [0.143 0.147];
floor(x*100)/100
ans = 1×2
0.1400 0.1400

Vilém Frynta
Vilém Frynta on 2 Dec 2022
Edited: Vilém Frynta on 2 Dec 2022
Example:
X = 0.143;
Y = sprintf('%.2f',X);
Y = str2double(Y)
Y = 0.1400
Someone ahd same question before. Next time, try to Google your question before asking.
  2 Comments
Stephen23
Stephen23 on 3 Dec 2022
Edited: Stephen23 on 3 Dec 2022
It is more efficient to keep this in the numeric domain, rather than converting to text and back.
It also does not work, because SPRINTF rounds values to the nearest digit, it does not round down:
X = 0.147;
Y = sprintf('%.2f',X);
Y = str2double(Y) % Nope, definitely not rounded down.
Y = 0.1500
The answers from Matt J and Les Beckham are correct.
Vilém Frynta
Vilém Frynta on 3 Dec 2022
True, I just reffered to someone else's answer.

Sign in to comment.

Tags

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!