我正在使用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)
,但仍无效。
我的命令有问题,还是环境?
答案 0 :(得分:1)
原来不同的环境可以解决问题。
我使用了Gnu Common Lisp(http://www.cs.utexas.edu/~novak/gclwin.html),答案按预期返回。
答案 1 :(得分:1)
如果您的实现支持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
欢呼声。