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.comballbery 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>