Вывести научную запись в виде десятичной записи
Я использую http://www.solve-et-coagula.com/As3Lisp.html для запуска основной факториальной функции.
Он выводит результаты в научной записи, но я хотел бы видеть полное "расширенное" число.
(defun factorial (n)
(cond ((= n 0) 1)
(t (* n (factorial (- n 1))))))
затем
(factorial 100)
9.33262154439441e+157
Я пробовал разные format
команды, (format t "~D" (factorial 100))
выглядит как победитель, но это не работает. Также попробовал установку (setq *READ-DEFAULT-FLOAT-FORMAT* 'double-float)
но все еще не работает.
Это проблема с моими командами, или это среда?
2 ответа
Оказывается, другая среда сделает свое дело.
Я использовал Gnu Common Lisp (http://www.cs.utexas.edu/~novak/gclwin.html), и ответ возвращается, как и ожидалось.
Если ваша реализация поддерживает srfi-28 (формат), то я думаю, что ~F справится с задачей. По куриной схеме:
#;1> (use format)
; loading /usr/local/lib/chicken/6/format.import.so ...
; loading /usr/local/lib/chicken/6/chicken.import.so ...
; loading /usr/local/lib/chicken/6/srfi-13.import.so ...
; loading /usr/local/lib/chicken/6/data-structures.import.so ...
; loading /usr/local/lib/chicken/6/ports.import.so ...
; loading /usr/local/lib/chicken/6/extras.import.so ...
; loading /usr/local/lib/chicken/6/format.so ...
#;2> (format #t "~F~%" (factorial 100))
93326215443944100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0
#t
проверить спецификацию формата яйца
веселит.