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

3 次查看(过去 30 天)
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

采纳的回答

Walter Roberson
Walter Roberson 2022-9-15
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by