how can I change the number of digits before decimal point?
22 ビュー (過去 30 日間)
古いコメントを表示
Hi everyone,
I would like to change the number of digits before the decimal point, for example 1.45237E+6 to 145.237E+4
Thanks in advance,
Riyadh
0 件のコメント
採用された回答
Stephen23
2018 年 9 月 10 日
編集済み: Stephen23
2018 年 9 月 11 日
Hmm, interesting problem. Here is one solution that lets you specify how many leading digits you want before the decimal point, before converting to char vector/string:
>> N = 1.45237E+6;
>> D = 3; % digits before decimal point
>> T = 6; % total digits
>> K = 10^(2-D+floor(log10(N)));
>> sprintf('%d%.*e',fix(N/K),T-D,mod(N,K))
ans = '145.237e+04'
Try it with more digits:
>> D = 5;
>> T = 6;
>> K = 10^(2-D+floor(log10(N)));
>> sprintf('%d%.*e',fix(N/K),T-D,mod(N,K))
ans = '14523.7e+02'
5 件のコメント
Noah Hovde
2022 年 4 月 19 日
How about expressing the number 0.21e-6 just as it is? I tried using your code and it converts it to 02.10e-07. I really want it to stay as 0.21e-6 so as to preserve units in the calculation that I am performing. Thanks for your help!
Steven Lord
2022 年 4 月 19 日
If you want the exponent to be a multiple of 3, use one of the ENG options for the format function.
x = 0.21e-6
y = 0.21e-7
format shorteng
disp([x; y])
format longeng
disp([x; y])
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!