I have forgotten how much i hate C++ Its not doing what you say it would but it did do other odd ball things. I miss my foxpro :-(. Plus its not holding 15 precision points #include <stdio.h> #include <cmath> int main() { double a = 0.1; //double b = 1000; double c = 100000000; double d ; //= a * b; for( int i = 1 ; i < 10 ; i++) { d = pow(a,i)+ c ; printf("%.10f\n", d); d = d-c ; printf("%.10f\n", d); } return 0; } Sam Mason wrote: On Tue, May 13, 2008 at 02:36:18PM -0400, Justin wrote:Double holds 15 places which is the highest value of precision it can maintain before rounding occurs. Is is limit less no, but what is? Practically speaking taking a vale 0.000,000,000,000,001 aka 1 trillionth of anything,But remember that if you add this value onto a large number and then take off the large number the result will be zero. (0.000,000,000,01 + 1,000,000) - 1,000,000 ==> 0 0.000,000,000,01 + (1,000,000 - 1,000,000) ==> 0.000,000,000,01 In general, operations on floating point numbers will increase their errors.i view the problem solved for 98% of problems.Floating point math is good for most problems, hence why most languages expose the abstraction. Sam |