[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: g++ 3.4.2 strange behavior
From: |
Paul Schneider |
Subject: |
Re: g++ 3.4.2 strange behavior |
Date: |
Mon, 01 Nov 2004 20:42:13 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041009 |
Even more confusing, by using a double temporary the answer changes again
#include <iostream>
#include <cstdlib>
using std::cout;
using std::endl;
class Hello {
public:
Hello(double a, double b, double c) :
aNumber(static_cast<size_t>(((b-a)/c)))
{
double inter = (b-a)/c;
secondNumber = static_cast<size_t>(inter);
thirdNumber = static_cast<size_t>((b-a)/c);
}
size_t const number() const { return aNumber; }
size_t numberTwo() const { return secondNumber; }
size_t numberThree() const { return thirdNumber; }
private:
size_t const aNumber;
size_t secondNumber;
size_t thirdNumber;
};
int main(int argc, char *argv[])
{
double a = 0.0;
double b = 1000.0;
double c = 0.01;
Hello hello(a, b, c);
cout << hello.number() << endl;
cout << hello.numberTwo() << endl;
cout << hello.numberThree() << endl;
return EXIT_SUCCESS;
}
gives:
99999
100000
99999