How can i use round function to change decimal value to integer ?

1 view (last 30 days)
Hi all!
i used the function "round" in order to round values in matrix, but it does not display the required result.
for example i have
x=1.5919 1.0e+06 *
i used
A=round(x)/(10^6)
i get this
X=1.5919 ,but the result i want is X=2.
Thanks in advance

Accepted Answer

Walter Roberson
Walter Roberson on 15 Sep 2022
format long g
x = 1.5919 * 1.0e+06
x =
1591900
round(x/10^6)
ans =
2
If you are wanting to round to 1 significant digit, then it gets a bit more complicated in vectorized form
x = [pi*10^6, exp(1)*10^-5, -sqrt(2)*10^2, -inf, inf, 0, nan].'
x = 7×1
1.0e+00 * 3141592.65358979 2.71828182845904e-05 -141.42135623731 -Inf Inf 0 NaN
scale = 10.^floor(log10(abs(x)));
scale(scale == 0 | ~isfinite(scale)) = 1;
A = round(x ./ scale) .* scale
A = 7×1
1.0e+00 * 3000000 3e-05 -100 -Inf Inf 0 NaN

More Answers (0)

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!