[Haskell-beginners] How to improve the accuracy of floating point calculation?
Brandon Allbery
allbery.b at gmail.com
Tue Feb 5 23:50:59 CET 2013
On Tue, Feb 5, 2013 at 5:41 PM, yi lu <zhiwudazhanjiangshi at gmail.com> wrote:
> I found that in ghci, I input
> [0.1,0.2..2]
> and run, I get a result of
>
>
> [0.1,0.2,0.30000000000000004,0.4000000000000001,0.5000000000000001,0.6000000000000001,0.7000000000000001,0.8,0.9,1.0,1.1,1.2000000000000002,1.3000000000000003,1.4000000000000004,1.5000000000000004,1.6000000000000005,1.7000000000000006,1.8000000000000007,1.9000000000000008,2.000000000000001]
>
> But, as you know, it is not the exact answer.
>
> So, I wonder if there is something I can do to achieve a better
> performance and get [0.1,0.2,0.3,0.4..] as the result.
>
Welcome to the world of floating point numbers. Perfect accuracy is not
possible; the CReal type from the "numbers" package may handle cases you
care about, or may not. (Other languages often use output formats that can
largely hide the errors, but they're still there and will eventually
accumulate into visibility.)
--
brandon s allbery kf8nh sine nomine associates
allbery.b at gmail.com ballbery at sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20130205/2357eb94/attachment.htm>
More information about the Beginners
mailing list