質問
Dプログラミング言語を最後に使用してからかなり経ちましたが、現在は科学計算を含むプロジェクト。
多数の浮動小数点データがありますが、 writefln
を使用して印刷すると、 4.62593E-172
はゼロです!文字列フォーマット%を使用して0などを印刷するにはどうすればよいですか?
今、ハックを使用しています:
if( abs(a) < 0.0000001 )
writefln(0);
else
writefln(a);
仕事をしますが、可能であればフォーマット操作を使用してやりたいです。
更新
誰かが writefln(&quot;%。3f&quot ;, a)
を提案しましたが、問題は不必要な余分なゼロを印刷することです。つまり、 0
は 0.000になります。
および 1.2
は 1.200
になります
末尾のゼロも削除できますか?
解決
簡単な答え:これは、printf形式指定子では実行できません。
DはC99の vsprintf()
と同じフォーマットを使用しているため、このスレッドで答えを見つけることができます。末尾を避けますprintf()のゼロ
他のヒント
次のようなものを試してください
writefln("%.3f", a);
Federicoの答えは機能するはずです。詳細については、 formatを確認してください。指定子セクション。
現在、Phobosを使用していますが、あなたがやろうとしていることはTangoでサポートされています。
Stdout.formatln("{:f2}", 1.2);
&quot; 1.20&quot;を印刷します
所属していません StackOverflow