Filter löschen
Filter löschen

How to cut digits after the decimal point?

137 Ansichten (letzte 30 Tage)
Mark Golberg
Mark Golberg am 1 Mär. 2017
Kommentiert: Dyuman Joshi am 28 Jan. 2024
Hello, I have the following variable:
a1 = 0.1234
I want to cut all digits after the first one after the decimal point. Meaning:
a2 = 0.1
I've created the following code (q=1 in our example):
b1 = a1 .* 10^q;
b2 = floor(b1);
a2 = b2 ./ (10^q);
But, it output
a2 = 0.1000
How can I get rid of the zeros in the end?
Thank you.

Akzeptierte Antwort

John D'Errico
John D'Errico am 1 Mär. 2017
Bearbeitet: John D'Errico am 1 Mär. 2017
You can use
a2 = round(a1,1);
to round to that decimal point.
However, to display the number with no zeros, you may want to change your display format.
format short
a2
a2 =
0.1000
format short g
a2
a2 =
0.1
See the difference between short, and short g.
I tend to leave the display format as short g always, except for the rare time when I want to see more digits, then I move to long g.
  4 Kommentare
ΦΨ
ΦΨ am 28 Jan. 2024
Bearbeitet: ΦΨ am 28 Jan. 2024
Is there an option to cut not round? Meaning:
1.59 -> 1.5
Dyuman Joshi
Dyuman Joshi am 28 Jan. 2024
format shortg
%input
in = 1.59;
%digits to cut
n = 1;
%output
out = floor(in*10^n)/10^n
out =
1.5

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Adam
Adam am 1 Mär. 2017
Bearbeitet: Adam am 1 Mär. 2017
a2 = round( a1, 1 );
if you have a sufficiently recent version of Matlab. I can't remember when this functionality was added to the round function though.

Kategorien

Mehr zu Graph and Network Algorithms finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by