题
它已经,因为我最后一次使用 d编程语言相当长一段时间,现在我使用它一些项目涉及的科学计算。
我有一大堆的浮点数据的,但是当我打印出来使用writefln
,我得到这样的结果:4.62593E-172
这是一个零!如何使用字符串格式化%的东西打印这样的事情0?
现在我用劈:
if( abs(a) < 0.0000001 )
writefln(0);
else
writefln(a);
它的工作,但我想用格式化运作做到这一点,如果可能的话。
<强>更新强>
有人建议writefln("%.3f", a)
但与它的问题是,它打印不必要额外的零,即0
变得0.000
和1.2
变得1.200
结果
我可以把它也删除尾随零?
解决方案
短的答案:这不能与printf的格式说明来完成
由于d采用相同的格式为C99的vsprintf()
,你会发现在这个线程的答案:避免尾随零的printf()
其他提示
尝试类似
writefln("%.3f", a);
费德里科的答案应该工作,以获取更多信息查看格式说明符部分。
我看到你目前正在使用火卫一,但你正在试图做的是支持探戈。
Stdout.formatln("{:f2}", 1.2);
将打印 “1.20”
不隶属于 StackOverflow