1,746 views (last 30 days)

I have a number X = 0.135678

Then i just want to round it become 0.14. What to do?

Use round(X) will only give "0".

Thanks before :)

Jos (10584)
on 11 Feb 2014

Edited: Stephen Cobeldick
on 11 Nov 2015

A = [pi exp(1) 1/7]

Ndecimals = 2

f = 10.^Ndecimals

A = round(f*A)/f

Junaid
on 3 May 2012

This also works.

X = 0.135678;

Y = sprintf('%.2f',X)

You can set as many decimals as you want.

Joep
on 11 Nov 2015

Very unconventional way to use. Converting from str2num and otherwise are "slow" process. It works but it is a real meshing solution. I prefer

round(X, n)

X your number witch you want to round, n the decicmals (- behind the comma/dot)

Walter Roberson
on 3 May 2012

Steven Lord
on 7 Nov 2016

Andrei Bobrov
on 3 May 2012

use roundn from Mapping Toolbox

roundn(X,-2)

Vladimir Melnikov
on 29 Apr 2020

roundn(1.12345,-1)

ans = 1.100000000000000

>> roundn(1.12345,-2)

ans = 1.120000000000000

>> roundn(1.12345,-3)

ans = 1.123000000000000

Wayne King
on 3 May 2012

One way here is:

X = 0.135678;

format bank;

X

Another way is:

format; %just returning the formatting

X = ceil(X*100)/100;

Probably the last way is the best because you don't have to mess with the formatting.

Prateek Sahay
on 7 Nov 2016

Walter Roberson
on 7 Nov 2016

That is what Jos's Answer does; http://www.mathworks.com/matlabcentral/answers/37262-how-to-round-the-decimals#answer_124002.

Note that the result of the round() would be 1557 not 1556.9

Note that the result will not be exact. There is no way to represent exactly 1.557 in binary floating point. The closest it gets is 1.556999999999999939603867460391484200954437255859375

This will display as 1.557 in most output modes, but it will not be exactly that value.

Jason Garcia
on 7 Feb 2019

Edited: Jason Garcia
on 7 Feb 2019

Maybe not exactly what you're looking for, but if you are looking for ceiling or floor measurements the below is a fun way to specifiy directly how you want to bin the array/value.

X = rand(100,1); %Rand 100 elmnt vector w/ range 0-1.

n = 100; %Use 100 for the nearest tenth.

cX = discretize(X,[0:1/n:1],[0+1/n:1/n:1]); %Rounds X UP to nearest 1/N.

%OR

fX = discretize(X,[0:1/n:1],[0:1/n:1-1/n]); %Rounds X DOWN to nearest 1/N.

Vladimir Melnikov
on 29 Apr 2020

Edited: Vladimir Melnikov
on 29 Apr 2020

the easiest way:

round (X,N)

e.g:

>> round(0.12345,1)

ans = 0.100000000000000

>> round(0.12345,2)

ans = 0.120000000000000

>> round(0.12345,3)

ans = 0.123000000000000

also read

>> doc round

Opportunities for recent engineering grads.

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

Start Hunting!
## 8 Comments

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_77208

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_77208

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_195730

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_195730

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_321254

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_321254

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_322253

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_322253

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_830773

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_830773

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_830798

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_830798

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_1005805

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_1005805

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_1005868

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/37262-how-to-round-the-decimals#comment_1005868

Sign in to comment.