我已經寫了一個多項式長分的方法。它用「好」多項式完美工作。在「好」之下,我的意思是係數精確分開。今天我試圖劃分2*x^3-18*x^2+..../7.00000(much zeros)0000028*x^2 + 5*x + ..
時遇到了問題。在分裂2*x^3/7.000...000028*x^2
後,我得到了0.285714....53*x
。在下一步,我們需要將0.2857....53*x
乘以7.00000...0000028*x^2 + 5*x + ..
,然後從分紅多項式2*x^3-18*x^2+...
中減去它,得到新的= 2的多項式。但由於double
的問題實際上得到了多項式2.220....E-16*x^3 - 6*x^2 + ...
。我知道它在x^3
附近實際上是零。我不想發明新的和陌生的東西,這就是爲什麼我要問如何精確和正確地解決問題。謝謝。雙數不是太準確
Q
雙數不是太準確
0
A
回答
2
許多除法結果(如1/7)無法在double或BigDecimal中精確表示。如果你使用BigDecimal,你必須選擇一些數字來保存,並處理舍入錯誤。對於double,你可以得到更方便的算術運算,但是有固定數量的有效位。
您有兩種選擇。
一個是處理舍入誤差。當結果非常接近於零時,可能是由於舍入誤差導致的,請將其視爲零。我不知道這是否適用於您的算法。如果你這樣做,你可以使用double或BigDecimal。
第二種選擇是使用一個有理數的包。在有理數算術中,所有的除法結果都可以精確地表示。 1/7仍然是1/7,而不是四捨五入到終止小數或二進制小數。如果你這樣做,搜索「java有理數」(不含引號)並決定你最喜歡哪一個。
相關問題
- 1. 雙NSNumber的不準確的
- 2. 雙浮點數不準確的來源
- 3. 的Android BroadcaseReceiver性能(太慢&不準確)
- 4. 補償雙重/浮動不準確
- 5. Youtube t = URL參數和'seekTo'API函數不太準確
- 6. 的MySQL函數MBRContains是不準確的
- 7. Android:是Paint.breakText(...)不準確?
- 8. Sleep()是否不準確?
- 9. putImageData/getImageData不是100%準確
- 10. Android:是Paint.breakText(...)不準確?
- 11. CNN準確性增加太快 - tensorflow
- 12. MySql計數不準確。 Codeigniter
- 13. SQL不準確的數字
- 14. 對數答案不準確
- 15. Python字符數不準確?
- 16. UICollectionViewCell指數不準確
- 17. 浮點數字不準確
- 18. 使用雙精度和準確性
- 19. 緯度不準確,但龍是準確的 - Android設備
- 20. 更換電腦後睡眠()變得不太準確? (C++)
- 21. AlarmMamanger不準確
- 22. NSTimer不準確?
- 23. thumbnailImageAtTime不準確
- 24. sizeWithFont:constrainedToSize:lineBreakMode:不準確?
- 25. GMSCameraPosition不準確
- 26. pygame.Sound.get_num_channels不準確
- 27. Pytesser不準確
- 28. datetime.now()不準確
- 29. DispatchQueue.main.asyncAfter不準確
- 30. CountDownTimer不準確
是的,他們是準確的,漂浮也。你需要答案,試着閱讀你的編程語言如何編碼浮點數。 –
如果您需要比普通雙重優惠更高的精度,您可以隨時嘗試類似https://gmplib.org/manual/Floating_002dpoint-Functions.html的內容。 – Paladin
@MaazRehman以及它會如何幫助我? – danielleontiev