On Mon, 12 May 2008 08:59:36 -0700, bintom wrote:
> On May 12, 8:23 pm, Lionel B <m...@[EMAIL PROTECTED]
> wrote:
>> On Mon, 12 May 2008 08:09:47 -0700, bintom wrote:
>> > I ran the following simple code in C++ and got unexpected results:
>>
>> > float f = 139.4;
>> > cout << f;
>>
>> > Output:
>> > 139.399994;
>>
>> > if( f == 139.4)
>> > cout << "Expected result";
>> > else
>> > cout << "Unexpected result";
>>
>> > Output:
>> > Unexpected reult
>>
>> [...]
>>
>> > Doesn't this look bad on C++'s resume?
>>
>> No, it looks bad on *your* resume ;-)
>>
>> http://www.para****ft.com/c++-faq-lite/newbie.html#faq-29.16
>>
>>
> Thanks Lionel for directing me to the link, but my question remains
> unanswered. Should it be a computer science issue as it says on the
> site, VB should've produced a similar (inaccurate) result. I'm just
> trying to defend my resume.
As it happens, on my system your C++ code produces the "correct" result.
But that's irrelevant - as the FAQ says: floating point is an
approximation. This is inescapable. If you're interested in pursuing the
issue further, have a look at the classic article: "What Every Computer
Scientist Should Know About Floating-Point Arithmetic"
http://docs.sun.com/source/806-3568/ncg_goldberg.html
--
Lionel B


|