[Date Index] [Thread Index] [Author Index]
Re: bug in IntegerPart ?
On 4/28/04 at 6:56 AM, ancow65 at yahoo.com (AC) wrote: >Bill Rowe <readnewsciv at earthlink.net> wrote in message >news:<c6l8dj$isr$1 at smc.vnet.net>... >>BaseForm isn't doing what you think and will not show the difference. >>BaseForm controls only the display of a number. By default >>Mathematica displays a number to 6 significant digits. Both 1.65 - >>1.3 and .35 are the same to 6 significant digits. Consequently, these >>will display the same when using BaseForm. >>To see the difference use RealDigits or FullForm. Both of these >>clearly show the difference between 1.65 - 1.3 and .35. I only seen one "computer" system where this is a true statement. That was a HP-41 handheld calculator which used binary coded decimal arithmetic instead of true binary. In every other system the numbers 1.65 and 1.3 are transformed to a finite binary representation, then the subtraction is done. And since neither 1.65 nor 1.3 has a finite binary representation, the result you get from the subtraction is different than the closest machine number to .35. Or said differently, unless you are using a system such as that used on the HP-41 calculator, 1.65 - 1.3 is indeed not identical to 0.35 >The way Mathematica performs subtraction makes them different. This is not an issue with Mathematica. Any machine using a standard IEEE floating point arithmetic will have the same issue. If you really need more details, look at any standard text on numerical analysis. >>Right, here you've inputed a number accurate to 6 significant >>digits. So, Mathematica displays 6 significant digits >BaseForm[0.35, 2] might be wrong as argument for 2^^#& but still it >is not a syntax error. By definition, it is improper syntax since you got an error. >In better design 2^^BaseForm[0.35, 2] should return 0.35` or at >minimum unchanged expression. Perhaps. But that isn't the way Mathematica is designed. Additionally, the documentation does reasonably clearly indicate 2^^BaseForm[0.35, 2] isn't valid in Mathematica. -- To reply via email subtract one hundred and four