change number of sig figs in a list of numbers
Mostra commenti meno recenti
basically i have a list of numbers, all with the same number of significant figures. an example of a number is :
734504.0749692708
I want to make this number the following: 734504.07
But the important thing is that I do not want to round. Also, I want to actually change the value, not simply how it is displayed. Matlab knows the exact value, and only displays 5 sig figs from the total of 16. I want to completely drop the last 8 figures in order to give me the above number. any way to do this?
Risposta accettata
Più risposte (2)
Andrei Bobrov
il 24 Mag 2011
more (EDIT)
N = 734504.0749692708
Ns = fix(N*100)/100
more more
"I want to completely drop the last 8 figures in order to give me the above number."(Michael):
pwr = 10^(8-ceil(log10(N)))
Ns = fix(N*pwr)/pwr
1 Commento
Matt Fig
il 24 Mag 2011
ROUNDN is only available with the mapping toolbox, correct?
Walter Roberson
il 24 Mag 2011
0 voti
It is not possible to store exactly 734504.07 in MATLAB double .
The algorithms that Matt and Andrei posted can only produce approximations of the number you want. For example, Andrei's solution produces the value 734504.069999999948777258396148681640625 . This is not a bug in Andrei's solution, but rather a limitation in what can be represented in MATLAB without using the Fixed Point Toolbox or the Symbolic Math Toolbox.
Categorie
Scopri di più su Logical 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!