2008-12-01 71 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”