[Date Index]
[Thread Index]
[Author Index]
Re: Precision
*To*: mathgroup at smc.vnet.net
*Subject*: [mg129361] Re: Precision
*From*: Murray Eisenberg <murray at math.umass.edu>
*Date*: Mon, 7 Jan 2013 23:06:00 -0500 (EST)
*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com
*Delivered-to*: l-mathgroup@wolfram.com
*Delivered-to*: mathgroup-newout@smc.vnet.net
*Delivered-to*: mathgroup-newsend@smc.vnet.net
*References*: <20130105071925.AC08868CA@smc.vnet.net> <20130107053854.E0C86690A@smc.vnet.net>
Of course in the case of dollars and cents, one should not ordinarily need to worry about loss of precision -- unless one is dealing with "exact" quantities on the order of the U.S. National Debt, which is roughly 2 * 10^13 and hence, including cents, would use 16 digits.
On Jan 7, 2013, at 12:38 AM, Andrzej Kozlowski <akozlowski at gmail.com> wrote:
>
> On 5 Jan 2013, at 08:19, Rob Ryan <tio540s1 at gmail.com> wrote:
>
>> My frustration is growing. I simply want to add (for example):
>> 103971.66+52282.64+2998.27. These are dollars and cents and I'd like to keep the cents. But when I input that line, I get 159923. When I input: N[(103971.66+52282.64+2998.27),20] I STILL get 159923. What do I do to get 159952.57? I've used "SetPrecision", etc. with still no result.
>> I note that when I type 103971.66 and hit shift-return, the output is 103972. If I then type "InputForm[%]" I get 103971.66.
>>
>> There simply has to be an easy way to add these numbers - any calculator watch can do it!
>
>
> In this case you can simply use NumberForm:
>
> NumberForm[103971.66 + 52282.64 + 2998.27, 8]
>
> 159252.57
>
> However, this approach will not always work (to understand why you have to first understand that Mathematica's approximate reals are not what you probably think they are)
>
> A much more reliable way is to do such computations using exact numbers. This will never give you a wrong answer:
>
> QuotientRemainder[10397166 + 5228264 + 299827, 100]
>
> {159252, 57}
>
> If you don't like this, you would be better off using a calculator watch.
---
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2838 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
Prev by Date:
**Re: How to speed up FindRoot with Map or MapThread**
Next by Date:
**Vertical Scrollbars Unresponsive in Pane**
Previous by thread:
**Re: Precision**
Next by thread:
**Re: Precision**
| |