我已经写了一个多项式长分的方法。它用“好”多项式完美工作。在“好”之下,我的意思是系数精确分开。今天我试图划分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