2008-12-01 89 views
2

自從我上次使用D Programming Language以來,已經有相當長的一段時間了,現在我將它用於一些涉及科學計算的項目。在D中打印浮點數

我有一堆浮點數據,但是當我使用writefln打印它們時,得到的結果如下:4.62593E-172這是一個零!如何使用字符串格式化%的東西打印0這樣的東西?

現在我用劈:

if(abs(a) < 0.0000001) 
     writefln(0); 
    else 
     writefln(a); 

它的工作,但我想用格式化運作做到這一點,如果可能的話。

UPDATE

有人建議writefln("%.3f", a),但它的問題是,它打印不必要的多餘的零,即0變得0.0001.2成爲1.200
我能把它還能去除尾隨零?

回答

2

嘗試像

writefln("%.3f", a); 
+0

這個打印1爲1.000和0爲0.000,我可以讓它刪除尾隨零? – hasen 2008-12-01 07:04:33

-1

我目前使用的是火衛一,但你正在嘗試做的探戈支持見。

Stdout.formatln("{:f2}", 1.2); 

將打印 「1.20」