de simpele probleemstelling:
de output:
iemand enig idee wat er gebeurd?
Ik had toch echt verwacht dat beide getallen hetzelfde zouden zijn.. het probleem doet zich ook voor als ik de conversie via een stringstream laat lopen, dus daar ligt het niet aan.
iemand enig idee wat hier misgaat
C++:
1
2
3
| long double a = strtold( "123456789123456789123456789", 0 ); long double b = 123456789123456789123456789e1L; std::cerr << a << std::endl << b << std::endl << ( a == b ) << std::endl; |
de output:
1.23457e+26 1.23457e+27 0
iemand enig idee wat er gebeurd?
Ik had toch echt verwacht dat beide getallen hetzelfde zouden zijn.. het probleem doet zich ook voor als ik de conversie via een stringstream laat lopen, dus daar ligt het niet aan.
iemand enig idee wat hier misgaat
oprecht vertrouwen wordt nooit geschaad