Boost logo

Boost Users :

From: Johan Råde (rade_at_[hidden])
Date: 2007-03-19 08:19:01


Paul Giaccone wrote:
> n.torrey.pines_at_[hidden] wrote:
>> lexical_cast<int>("1e4") == 1 // because of the way streams work of course
>>
>> I think that in the interests of robustness, and unless a better
>> solution can be found, lexical_cast<> should be secialized for some
>> types.
>>
>
> Interesting... I had exactly the same issue in MEL the other day. The
> obvious workaround is to cast the string to a float before casting it to
> an int, but it would be nice if lexical_cast<int> recognised
> floating-point numbers in scientific notation.

C++ iostreams do not support integers in scientific notation.
There may be good reasons for that:

1.2345 is not an integer
1.2345e4 is an integer
1.2345e3 is not an integer

That makes the task of parsing integers in scientific notation a bit tricky.

--Johan


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net