From: dashesy <da...@gm...> - 2011-04-09 20:36:27
|
> Hi, > > Sorry for jumping into this discussion, but I don't seem to understand what > the advantage is of a non-hardware supported real number representation. If > you need the two (or a bit more) decimal places required for currency and > percentages, why not just use a big integer and for display divide by 100? > No more worries about precision, up to an arbitrarily determined number of > decimal places. Are the numbers so huge that they can't be stored in a > 128-bit integer, or are there stricter requirements precision-wise? Thanks! > > Ruben > > Op 9 apr. 2011 15:16 schreef "K. Frank" <kfr...@gm...> het volgende: >> Hello NightStrike! >> >> On Sat, Apr 9, 2011 at 2:41 AM, NightStrike <nig...@gm...> wrote: >>> On Sun, Apr 3, 2011 at 7:07 AM, James K Beard <bea...@ve...> >>> wrote: >>>> A quick glance through the document seems to tell us that the decimal >>>> arithmetic will incorporate checks to ensure that any rounding in binary >>>> floating point does not compromise the accuracy of the final decimal >>>> result. >>>> ... >>> >>> I'm being a little OT here, but I'm curious.. does that mean that >>> COBOL was a language that gave very high accuracy compared to C of the >>> day? >>> >> >> No, COBOL, by virtue of using decimal arithmetic, would not have been more >> accurate than C using binary floating-point, but rather >> "differently"accurate. >> (This, of course, is only true if you make an apples-to-apples comparison. >> If you use 64-bit decimal floating-point -- call this double precision >> -- this will >> be much more accurate than 32-bit single-precision binary floating- point, >> and, of course, double-precision binary floating-point will be much more >> accurate than single-precision decimal floating-;point.) >> >> That is, the set of real numbers that can be represented exactly as >> decimal >> floating-point numbers is different than the set of exactly representable >> binary >> floating-point numbers. >> >> Let me illustrate this with an approximate example -- I won't get the >> exact >> numbers and details of the floating-point representation correct, but the >> core idea is spot-on right. >> >> Compare using three decimal digits (0 -- 999; 10^3 = 1000) with ten binary >> digits (0 -- 1023; 2^10 = 1024), essentially the same accuracy. >> >> Consider the two real numbers: >> >> 1 - 1/100 = 0.99 = 99 ^ 10^-2, an exact decimal floating-point >> >> 1 - 1/128 = 0.1111111 (binary) = 127 * 2^-7, an exact binary >> floating-point >> >> The first, 1 - 1/100, is not exactly representable in binary, because >> 1/100 = 1 / (2^2 * 5^2), and you can't represent fractional (negative) >> powers of five exactly in binary. >> >> The second, 1 - 1/128, is not exactly representable in decimal, >> because we are only using three decimal digits. >> >> 1/128 = 0.0078125 (exact), >> >> so >> >> 1 - 1/128 = 0.9921875 (exact) >> >> If we give ourselves seven decimal digits, we can represent >> 1 - 1/128 exactly, but that wouldn't be an apples-to-apples >> comparison. >> >> The best we can do with our three-decimal-digit decimal >> floating-point is >> >> 1 - 128 ~= 0.992 = 992 * 10^-3 (approximate) >> >> This shows that neither decimal nor binary is more accurate, but >> simply that they are different. If it is important that you can >> represent things like 1/100 exactly, use decimal, but if you want >> to represent things like 1/128 exactly, use binary. >> >> (In practice, for the same word size, binary is somewhat more >> accurate, because in decimal a single decimal digit is usually >> stored in four bits, wasting the difference between a decimal >> digit and a hexadecimal (0 -- 15) digit. Also, you can trade off >> accuracy for range by moving bits from the mantissa to the >> exponent.) >> >> Happy Hacking! >> Can this new feature maybe used for fixed point arithmetic? For some hardware it might be advantageous because floating point implementation is not supported or is costly. This new addition might somehow make the libraries more standard (?), but the real advantage would be to have the math library work with it (does it now?). dashesy >> >> K. Frank >> >> >> ------------------------------------------------------------------------------ >> Xperia(TM) PLAY >> It's a major breakthrough. An authentic gaming >> smartphone on the nation's most reliable network. >> And it wants your games. >> http://p.sf.net/sfu/verizon-sfdev >> _______________________________________________ >> Mingw-w64-public mailing list >> Min...@li... >> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > > ------------------------------------------------------------------------------ > Xperia(TM) PLAY > It's a major breakthrough. An authentic gaming > smartphone on the nation's most reliable network. > And it wants your games. > http://p.sf.net/sfu/verizon-sfdev > _______________________________________________ > Mingw-w64-public mailing list > Min...@li... > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > > |