How do change decimal place in command window?
1 回表示 (過去 30 日間)
古いコメントを表示
I found a code that rounds any element of an array to any decimal place without using built in functions. It works good, but all the results in the command window are expressed in 10^-3. What needs to be done to express the results in their initial value.
Here's the code, so you can run it and see what I'm talking about.
clc;clear;format compact
numbers=[934.9 -0.4567 1045.76]; %get the number array
digits=[100 0.1 10]; %get the digit array
result=0*numbers;
% result=RoundTo(numbers, digits); % use function RoundTo to round array of numbers
for count0=1:length(numbers)
number=numbers(count0);
digit=digits(count0);
num_sign=1; % save the sign of number
if number<0
num_sign=-1;
end
GNumber=num_sign*number;
GFactor=1/digit;% change all digit to 1 by multiply by GFactor
GNumber=GNumber*GFactor;
int_num=0; %to save the integer part of GNumber
%find the integer part of GNumber
if GNumber>=1
max_order=0;
count=0;
decimal=1;
factor=zeros(1,500);
while decimal<GNumber % compare GNumber with decimal = 1, 10, 100, 1000......
count=count+1;
decimal=10*decimal;
end
max_order=count;
count_order=max_order;
Temp_GNumber=GNumber;
CNumber=0;
while decimal>=1 %determine factor is coresponded with each decimal
decimal=decimal/10;
count=0;
CNumber=count*decimal;
while CNumber<Temp_GNumber
count=count+1;
CNumber=count*decimal;
end
if decimal>=1
Temp_GNumber=Temp_GNumber-(count-1)*decimal;
factor(count_order)=count-1;
count_order=count_order-1;
end
end
decimal=1;
for count=1:max_order %caculate integer part base on factors are detemined
int_num=int_num+decimal*factor(count);
decimal=decimal*10;
end
end
if (GNumber-int_num)>=0.5
int_num=int_num+1;
end
output=num_sign*int_num/GFactor;
result(count0)=output;
end
output0=[numbers,digits,result] % display the result on the command screen of matlab
1 件のコメント
Walter Roberson
2012 年 4 月 29 日
That code uses quite a number of built-in functions. For example, number < 0 uses the built-in function named "lt", and [numbers,digits,result] uses the built-in function named "horzcat".
回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Operators and Elementary Operations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!