change number of sig figs in a list of numbers
2 ビュー (過去 30 日間)
古いコメントを表示
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?
0 件のコメント
採用された回答
Matt Fig
2011 年 5 月 24 日
N = 734504.0749692708
Ns = round(N*100)/100
EDIT Addressing Oleg's concern...
The above keeps two significant decimals. If you instead want to just drop them, then use fix instead. Look at the difference:
N = 7.85999999
Ns1 = round(N*100)/100
Ns2 = fix(N*100)/100
N =
7.85999999
Ns1 =
7.86
Ns2 =
7.85
2 件のコメント
Oleg Komarov
2011 年 5 月 24 日
You should change it to fix otherways the following number is rounded:
N = 734504.079;
Matt Fig
2011 年 5 月 24 日
I would think that 734504.08 would be the correct solution in keeping 2 significant decimals?
If it is desired to just drop any digits after the second decimal, then you are correct...
その他の回答 (2 件)
Andrei Bobrov
2011 年 5 月 24 日
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 件のコメント
Walter Roberson
2011 年 5 月 24 日
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.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Annotations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!