我希望以更好的方式打印浮点数。具体而言,我希望在小数点后打印两个数字,但仅在这些数字不为零时才这样做。
如果该数字不是偶数,则此方法有效:
但是如果这个数字是整数,我会得到这个结果:
如果该数字不是偶数,则此方法有效:
(let ((f 1.240))
(format t "~,2F" f))
--> 1.24
但是如果这个数字是整数,我会得到这个结果:
(let ((f 1240))
(format t "~,2F" f))
-->1240.00
有没有一种优雅的方式来处理这个问题,或者我必须在打印之前手动检查小数点的数量?
(let ((f 1.1)) (format t "~:[~,2f~;~d~]" (integerp f) f))
打印出1.10
,但他不想要尾随的零。不过他又写道 "只有这些数字不是零的时候",因此从技术上讲,你仍然符合规格。 :) - danlei