【发布时间】:2011-10-04 01:42:08
【问题描述】:
我在 SWI-Prolog 文档中花费了大量时间,但一无所获。我的愿望是能够格式化输出的数字,以便我控制显示的总#十进制数字,并以给定的字符宽度右对齐数字。例如:
2.500 (trailing zeroes displayed)
34.432 (rounded from a much longer decimal value)
213.110
所有 3 个都在 7 个字符宽的空间中右对齐,并显示 3 个小数位(即使它们为零)。我可以单独完成其中一些事情,但不能一次完成。
writef( '%7R', [34.342]).
writef( '%7R', [34.300]).
^^^ 这非常接近我想要的,但不幸的是它确实显示了任何尾随零(它总是会忽略它们)。另外,在将舍入值传递给 writef() 之前,我必须手动进行舍入。
format( '~3f', 34.34219089).
format( '~3f', 1234.3).
这个进行舍入,并允许尾随零,但我找不到使用“格式”功能强制右对齐的方法,也找不到将 writef(对齐)功能与格式相结合的方法(四舍五入和零显示)。
有什么想法吗?
非常感谢!
【问题讨论】:
标签: prolog