lisp中计算数值大了,计算错误,请大神帮忙
如下语句计算圆管惯性矩,当数值a,d较大时计算结果不对,比如a=650,d=614准确计算结果应该是1785812130.48,而此句得出计算结果99182417.42
(setq gxj (/(* 1.0 pi (-(expt a 4)(expt d 4) )) 64)))
请大神帮忙看看问题出在哪里,万分感谢{:7_492:}
把数据发上来 大伙儿帮你看 a=650,d=614 (setq a 650.0 d 614.0) (rtos(/(* 1.0 pi (-(expt a 4)(expt d 4) ))64)2 4) 数值超过整数范围了(expt a 4.0)(expt d 4.0)也可以解决
fas是32位的,最大整数不能超过2的31次方。数太大就不要用整数,改成实数吧。 (setq a 650. d 614.)
(rtos (setq gxj (/(* 1.0 pi (-(expt a 4)(expt d 4) )) 64))2 2) 谢谢各位{:7_492:}
页:
[1]