2010-10-13 86 views
0

这可能是一个愚蠢的问题要问:在使用浮点数时,有一些四舍五入的小数位,如何检查四舍五入错误,最好在java或C?任何建议将不胜感激。如何检查四舍五入错误?

+1

有一个技巧,你改变舍入模式,重复计算,并看看结果是否是相同(如果不相同,差异会给你一些想法如何在数值上稳定你的算法)。如果支持,您可以用''中的'fesetround'在C中执行此操作。但答案是“发生了四舍五入?”几乎总是“是”,所以如果你只是假设它已经失去了通用性,并且想知道它对结果有多大影响;-) – 2010-10-13 01:49:19

回答

0

那么,你可以做一些没有舍入的操作,并比较结果。例如,在java中,您可以使用Big Decimal在用float ...做完之后执行操作,并查看最终是否使用相同的数字。

更好的问题是,你为什么要这样做?浮动通常会做怪异的回合,你不想在需要精确度的任何地方使用它(即使用银行交易)。在这种情况下,请使用大十进制。但如果你只是想在屏幕上显示一个3D点,1.5到1.499997就不会改变任何东西...

+0

感谢您的回复 – collegian 2010-10-19 19:35:04