Rounding a decimal down

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.

 Risposta accettata

Matt J
Matt J il 2 Dic 2022
Modificato: Matt J il 2 Dic 2022
x=0.147;
floor(x*100)/100
ans = 0.1400

1 Commento

Emre Tas
Emre Tas il 8 Ago 2023
Thank you for your answer, it solved my meshing problem.

Accedi per commentare.

Più risposte (2)

x = [0.143 0.147];
floor(x*100)/100
ans = 1×2
0.1400 0.1400
Vilém Frynta
Vilém Frynta il 2 Dic 2022
Modificato: Vilém Frynta il 2 Dic 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 Commenti

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.
True, I just reffered to someone else's answer.

Accedi per commentare.

Categorie

Scopri di più su Elementary Math in Centro assistenza e File Exchange

Prodotti

Release

R2021b

Tag

Richiesto:

il 2 Dic 2022

Commentato:

il 8 Ago 2023

Community Treasure Hunt

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

Start Hunting!

Translated by