<div dir="ltr"><div>This does not seem right to me:</div><div><br></div><div>Prelude Data.Number.Fixed> read "4.00" :: Fixed (EpsDiv10 (EpsDiv10 Eps1))</div><div>4.00</div><div>Prelude Data.Number.Fixed> read "4.01" :: Fixed (EpsDiv10 (EpsDiv10 Eps1))</div><div>4.00</div><div>Prelude Data.Number.Fixed> read "4.02" :: Fixed (EpsDiv10 (EpsDiv10 Eps1))</div><div>4.03</div><div>Prelude Data.Number.Fixed> read "4.03" :: Fixed (EpsDiv10 (EpsDiv10 Eps1))</div><div>4.04</div><div>Prelude Data.Number.Fixed> read "4.04" :: Fixed (EpsDiv10 (EpsDiv10 Eps1))</div><div>4.05</div><div><br></div><div>Maybe I am misunderstanding the purpose of this library. I guess that "two digits" of precision means that it is accurate within +/- 0.01?</div><div><br></div><div>I think that this library is meant for doing arbitrary-precision transcendental operations. But it would not be good as a model for something like currency.</div><div><br></div><div>It's using ratios as an internal representation, and I'm not sure what ratios it's choosing, but I think I'd choose, say, 401/100 for the "4.01" representation. I guess it's picking a slightly smaller factor than that.</div><div><br></div><div>The non-reversibility of read/show is somewhat disconcerting. I think I prefer the Decimal library for currency.</div><div><br></div><div>Regards,</div><div>Lyle</div></div>