Function to chop a decimal to a variable number of digits
Mostra commenti meno recenti
I wrote the following function to approximate a number using chopping arithmetic.
chop(5,4.333352312)
function output = chop(numdigits,float)
y = floor(log10(float)+1); %number of digits in the integer part
x = fix(numdigits - y);
fprintf("%.xf",float)
end
The function is meant to approximate a float using numdigits chopping arithmetic. Since that is a variable, the number of digits after the decimal point is unknown. The output in the above example should be 4.3333 but the output is 4e+00. Is there any alternate way to display a variable number of digits after the decimal point?
Risposta accettata
Più risposte (1)
Ameer Hamza
il 3 Ott 2020
Modificato: Ameer Hamza
il 3 Ott 2020
MATLAB does not recognize what does 'x' means inside fprintf() function call. Try the following code
chop(3,4.333352312)
function chop(numdigits,float)
y = floor(log10(float)+1); %number of digits in the integer part
fprintf(sprintf('%%%d.%df', numdigits+1, numdigits-y), float);
end
Categorie
Scopri di più su Dictionaries in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!