How can I display high precision number in engineering format?
2 次查看(过去 30 天)
显示 更早的评论
I need to display my results in engineering format with large exponential values( for eg. 3.14159e-070). 'format longE' doesn't helps in this case. I used vpa function but it displays the result in expanded format (for eg. 0.000000000000000000000000000000000000000000000000000000000000000000000000003141592653589793299). How can I display my results in exponential form with high negative powers? Thanks in advance.
0 个评论
回答(1 个)
Star Strider
2016-10-14
I wrote a utility function for my own use that you may find useful:
engstr = @(x) [x*10.^(-3*floor(log10(abs(x))/3)) 3*floor(log10(abs(x))/3)];
Q1 = Your_Number_Here;
Result2 = sprintf('%.4fe%+04d', engstr(Q1))
The ‘engstr’ function calculates the mantissa and exponent as a (1x2) vector. The ‘Result2’ assignment demonstrates a way to print them.
3 个评论
Star Strider
2016-10-16
My pleasure.
Use double instead of vpa, or change the ‘Result2’ assignment to:
Result2 = sprintf('%.4fe%+04d', engstr(double(Q1)))
That should work.
Walter Roberson
2016-10-16
编辑:Walter Roberson
2016-10-16
It won't display the results in high precision with accuracy. The question is about reformatting a high precision symbolic number to still have high precision but engineering format. (I think. The text and the tags are not entirely clear about it.)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!