如果你想解構一個浮點數,我們首先要確保它是一個大浮點數。 說z: 34.1
您可以通過使用lisp來訪問bigfloat的部分,您還可以通過?fpprec
訪問尾數長度的位數。
因此?second(z)*2^(?third(z)-?fpprec)
爲您提供:
4799148352916685/140737488355328
和bfloat(%)
爲您提供:
3.41b1.
如果你想z的尾數爲整數,看?second(z)
現在,我不知道是什麼是你試圖完成10,但千里馬 不做內部算術的基數10.
如果你想要更多的位或更少,您可以設置鏈接到?fpprec
的fpprec, 。 fpprec是「近似基數10」的精度。 因此fpprec最初是16 ?fpprec
相應地是56.
你可以很容易地改變它們,例如, fpprec:100 相當於335
?fpprec
如果您正在使用的浮點表示,diddling周圍,你可能會受益於知道 ,你可以通過輸入,例如看任何口齒不清的, ?print(z)
它使用Lisp打印功能打印內部表單。
您還可以跟蹤任何函數,您自己的或系統函數。對於n
trace(append,rnd,integrate);
如果你想使用機器的花車,我建議你使用,最後一行,
30通1個-1 DO: 例如,你可以考慮做此
Ibwd:append([[n-1,rnd(1/(2.0*n- 1.0)-a*last(first(Ibwd)),d)]],Ibwd);
請注意小數點。但即使這樣還不夠,因爲集成 會插入像atan(10)這樣的精確結構。試圖圍繞這些事情,或計算它們的日誌可能不是你想要做的。我懷疑Maxima是不高興的,因爲日誌給出了一些混亂的表達,結果是消極的,儘管它最初的想法是另外的。它把這個數字交給了lisp日誌程序,它非常樂意返回一個合適的common-lisp複數對象。不幸的是,Maxima大部分都是在LISP HAD COMPLEX NUMBERS之前編寫的。
因此結果(log -0.5)= #C(-0.6931472 3.1415927)
是完全出乎意料的其餘的千里馬。 Maxima對複數有自己的形式,例如3+4*%i
。
尤其是,Maxima顯示程序早於常見的lisp複數格式,並不知道如何處理它。
錯誤(堆棧溢出!!!)是顯示程序試圖顯示一個常見的lisp複數。
如何解決這一切?那麼,你可以嘗試改變你的程序,以便計算你真正想要的,在這種情況下,它可能不會觸發這個錯誤。 Maxima的顯示程序也應該修復。另外,我懷疑在簡化數字記錄方面存在一些不幸的現象,這些記錄是負面的,但並不明顯。
這可能是太多的原始海報信息,但也許上面的段落將有所幫助,也可能改善Maxima在一個或多個地方。
那麼,我得出的結論是,問題與四捨五入功能 - 沒有它,它工作得很好。那麼問題是什麼? – Anne