This is a multi-part message in MIME format.
--------------070604040404030402020707
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 7bit
Tomasz Ostrowski wrote:
> On 2008-05-13 17:29, Justin wrote:
>
>> Tomasz Ostrowski wrote:
>>
>>> On 2008-05-12 20:49, Justin wrote:
>>>
>>>
>>>
>>>> We take (List Price * discount Percent) * Number of Pieces = net
>>>> price.
>>>>
>>>>
>>> This is wrong. You should do in Excel:
>>> ( price * amount ) * discount
>>> As otherwise any small error in representation of price*discount would
>>> be multiplied by usually high amount.
>>>
>>>
>> Your saying in Excel, Multiplication is not Commutativity??? that
>> sends shudders down my back
>>
>
> On floats it is not in any language. Try this C program:
>
> #include <stdio.h>
>
> int main()
> {
> float a = 0.1;
> float b = 10;
> float c = 1000000000;
> float d = a * b;
> printf("%.10f\n", d*c);
> d = b * c;
> printf("%.10f\n", a*d);
> return 0;
> }
>
> On my Intel 32-bit I get:
> 1000000000.0000000000
> 1000000014.9011611938
>
I ran this on Windows using MSVC
The Result are the same when using float . But the Ms compiler throws
warnings, crying truncation and rounding problems
1000000000.0000000000
1000000014.9011612000
I change it to double problem goes away.
1000000000.0000000000
1000000000.0000000000
I have always avoided floating points. In all the work i have done thus
far the problems with floating math would cause scrap parts or make
Quality control worthless.
Accuracy trumps pretty much every concern around here.
> Pozdrawiam
> Tometzky
>
--------------070604040404030402020707
Content-Type: text/html; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-2" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
Tomasz Ostrowski wrote:
<blockquote cite="mid:4829C135.6010905@[EMAIL PROTECTED]
" type="cite">
<pre wrap="">On 2008-05-13 17:29, Justin wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Tomasz Ostrowski wrote:
</pre>
<blockquote type="cite">
<pre wrap="">On 2008-05-12 20:49, Justin wrote:
</pre>
<blockquote type="cite">
<pre wrap="">We take (List Price * discount Percent) * Number of
Pieces = net
price.
</pre>
</blockquote>
<pre wrap="">This is wrong. You should do in Excel:
( price * amount ) * discount
As otherwise any small error in representation of price*discount would
be multiplied by usually high amount.
</pre>
</blockquote>
<pre wrap="">Your saying in Excel, Multiplication is not
Commutativity??? that
sends shudders down my back
</pre>
</blockquote>
<pre wrap=""><!---->
On floats it is not in any language. Try this C program:
#include <stdio.h>
int main()
{
float a = 0.1;
float b = 10;
float c = 1000000000;
float d = a * b;
printf("%.10f\n", d*c);
d = b * c;
printf("%.10f\n", a*d);
return 0;
}
On my Intel 32-bit I get:
1000000000.0000000000
1000000014.9011611938
</pre>
</blockquote>
I ran this on Windows using MSVC<br>
<br>
The Result are the same when using float . But the Ms compiler throws
warnings, crying truncation and rounding problems <br>
1000000000.0000000000<br>
1000000014.9011612000<br>
<br>
I change it to double problem goes away. <br>
1000000000.0000000000<br>
1000000000.0000000000<br>
<br>
I have always avoided floating points. In all the work i have done
thus far the problems with floating math would cause scrap parts or
make
Quality control worthless. <br>
<br>
Accuracy trumps pretty much every concern around here.<br>
<br>
<br>
<blockquote cite="mid:4829C135.6010905@[EMAIL PROTECTED]
" type="cite">
<pre wrap="">Pozdrawiam
Tometzky
</pre>
</blockquote>
</body>
</html>
--------------070604040404030402020707--


|