This is a multi-part message in MIME format.
--------------040903080603000607070801
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
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
>
>
--------------040903080603000607070801
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
I have forgotten how much i hate C++<br>
<br>
Its not doing what you say it would but it did do other odd ball
things. I miss my foxpro :-(. <br>
<br>
Plus its not holding 15 precision points<br>
<br>
#include <stdio.h><br>
#include <cmath><br>
<br>
int main()<br>
{<br>
double a = 0.1;<br>
//double b = 1000;<br>
double c = 100000000;<br>
double d ; //= a * b;<br>
for( int i = 1 ; i < 10 ;
i++)<br>
{ <br>
d = pow(a,i)+ c
;<br>
printf("%.10f\n",
d);<br>
d = d-c ;<br>
printf("%.10f\n",
d);<br>
}<br>
<br>
return 0;<br>
}<br>
<br>
Sam Mason wrote:
<blockquote
cite="mid:20080514143817.GF1657@[EMAIL PROTECTED]
"
type="cite">
<pre wrap="">On Tue, May 13, 2008 at 02:36:18PM -0400, Justin wrote:
</pre>
<blockquote type="cite">
<pre wrap="">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,
</pre>
</blockquote>
<pre wrap=""><!---->
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.
</pre>
<blockquote type="cite">
<pre wrap="">i view the problem solved for 98% of problems.
</pre>
</blockquote>
<pre wrap=""><!---->
Floating point math is good for most problems, hence why most languages
expose the abstraction.
Sam
</pre>
</blockquote>
</body>
</html>
--------------040903080603000607070801--


|