(defun replace-nth-from-list (list n elem)
(cond
((null list) ())
(t (append (subseq list 0 n) elem (subseq list (+ 1 n)(length list))))))
используйте printf ("%. 6g", doubleValue)
или printf ("%. 6Lg", doubleValue)
Обратите внимание, что оставление ведущего цифры («ширина») в спецификаторе точности не требуют длины целой части значения.
Также обратите внимание, что нижний регистр «l» указывает, что ваше значение является длинным int. Заглавная буква «L» определяет длинное двойное значение.
Также обратите внимание, что если вы не хотите, чтобы это было потенциально изменено на научную нотацию (если это более короткое представление), вы должны использовать «f» вместо « g ".
См. ссылку на printf здесь .
Есть
Скорее всего, вам подскажет тот же файл. что double на вашей платформе имеет точность более 6 цифр ...
PS: Также обратите внимание на ответ Деми выше. Он указывает на различные недостатки вашей printf (), которые ускользнули от меня.
Максимальный показатель степени IEEE double равно 1023, поэтому наибольшее значение double будет 1 + 1/2 + 1/4 + 1/8 + ... и т. д. * 2 ^ 1023. Это будет примерно 318 знаков в десятичной системе счисления.
Почему бы не использовать букву «е»