20070710

C++ double to int convertion.

Δοκιμάζα να μετρεψω ένα αριθμό double τον οποίο διάβαζα από ένα stream κατευθεάν μέσω του >> operator, αλλά δεν δούλευε πάντα. Όταν είχα μεγάλους αριθμούς δεν έγραφε τίποτα στο sample.

int sample;
ss>>sample;
Δοκίμασα να το πάρω και να χρησιμοποιήσω το lexical_cast του boost και μου έριχνε exception!! Η λύση είναι πιό απλή. Το διαβάζω σε ένα double και κατόπιν (το κάνω casting σε double πχ χρησιμοποιώντας boost lexical cast) και στο τέλος χρησιμοποιώ casting με την int():
string str="31212.43343535";
double d_nr=lexical_cast<double>(str);
int nr=int(d_nr);
// nr = 31212

Δεν υπάρχουν σχόλια:

Αρχειοθήκη ιστολογίου

eggs.in.art (my non-technical blog)