自从我上次使用D编程语言以来已经有一段时间了,现在我将它用于一些涉及科学计算的项目.
我有一堆浮点数据,但是当我使用它打印时writefln
,我得到的结果如下:4.62593E-172
这是零!如何使用字符串格式化%stuff来打印0这样的东西?
现在我正在使用黑客:
if( abs(a) < 0.0000001 ) writefln(0); else writefln(a);
它完成了这项工作,但我希望使用格式化操作,如果可能的话.
UPDATE
有人建议,writefln("%.3f", a)
但它的问题是它打印不必要的额外零,即0
成为0.000
和1.2
变成1.200
我可以使它也删除尾随零?
简短回答:使用printf格式说明符无法做到这一点.
由于D使用与C99相同的格式vsprintf()
,因此您可以在此主题中找到答案:避免在printf()中使用尾随零