(format nil "~,100F" x)
'un ne istediğini gerçekleştiren uygulamalar olabilir. Fakat en başta bu ilk önce bir kayan noktaya dönüşür, daha sonra rakamları hesaplar ve hassasiyeti kaybeder.
Kendi programınızı yapmak çok zor değil. Fikir, ondalık noktadan önce ve sonra parçaları tamsayılar olarak ayrı ayrı hesaplamaktır. İşte benim önerim:
(defun number->string-with-fixed-decimal-places (x width &optional stream)
"Print an approximation of <x> with <width> digits after the decimal point."
(multiple-value-bind (int dec) (truncate x)
(let ((dec-shifted (truncate (* (abs dec) (expt 10 width)))))
(format stream "~d.~v,vd" int width #\0 dec-shifted))))
Başka bir popüler uygulama: Dave Gillespie'nin Calc'i, Elisp'de keyfi-hassas kayan nokta uygular (kendisinin bile büyük bir yanı yoktur!). – Ken