小数点表示をしたい(ただし、後0は付加しない)
49 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
yuuji yamada
am 31 Okt. 2018
Kommentiert: yuuji yamada
am 29 Nov. 2018
任意の小数値Aに後0(小数点の末尾の0)が付かないように表示させたいと思っています。 下記のようにするとstr_g ='4.5036e+15'という形式で表示されてしまいました。 小数で且つ、後0(小数点の末尾の0)が付かないようにするにはどうすればよいでしょうか。
str_g = sprintf('%g',A);
Matlab2018aを使用しています。
2 Kommentare
Kazuya
am 4 Nov. 2018
質問の意図が読み切れませんでしたが、、コマンドウィンドウでの出力表示を
>> A = 0.8
A =
0.8000
となるところを
0.8
とだけ表示させたいということですか?
Akzeptierte Antwort
Kazuya
am 9 Nov. 2018
コマンドウィンドウ上での double 型数値の表示形式を考えると、
にある選択肢しか取れないので、0.8 という表示はできません。もうすでに試しているように sprintf であれば文字列に変換した上で 0.8 と表示できますが、これでは用途に合いませんか?
A = 0.8;
str_g = sprintf('%g',A)
str_g =
'0.8'
6 Kommentare
Akira Agata
am 28 Nov. 2018
Bearbeitet: Akira Agata
am 28 Nov. 2018
数値を有効数字n桁の文字列として出力した後、もし末尾に1個以上の 0 があれば除去して表示する、という方法ではどうでしょうか。
例えば、以下のようにすると、対象となる数値Aが 0 以上 1 以下の場合に、有効数字3桁の文字列として出力することができます。
A = pi*1e-4; % 数値の一例
n = -1*floor(log10(A))+2;
format = ['%.',num2str(n),'f'];
str = sprintf(format,A);
str = regexprep(str,'0+$','');
>> str
str =
'0.000314'
Weitere Antworten (1)
madhan ravi
am 31 Okt. 2018
isfloat(4.5036e+15)
if it returns 1 , then its a decimal value
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!