2009-05-14 42 views
10

Tôi đang gặp một số vấn đề khi cố chuyển đổi chuỗi kép thành chuỗi C++. Đây là mã của tôiChuyển đổi đôi thành chuỗi trong C++

std::string doubleToString(double val) 
{ 
    std::ostringstream out; 
    out << val; 
    return out.str(); 
} 

Vấn đề tôi gặp phải là nếu gấp đôi được chuyển thành '10000000'. Sau đó, các chuỗi giá trị được trả lại là 1e + 007

Làm thế nào tôi có thể nhận được giá trị chuỗi như "10000000"

+12

Làm thế nào về một số ví dụ sau đây: http://www.codeproject.com/KB/recipes/Tokenizer.aspx Chúng rất hiệu quả và phần nào thanh lịch. –

Trả lời

14
#include <iomanip> 
using namespace std; 
// ... 
out << fixed << val; 
// ... 

Bạn cũng có thể xem xét sử dụng setprecision để thiết lập số chữ số thập phân:

out << fixed << setprecision(2) << val; 
+0

Cảm ơn .. điều này đã làm việc tuyệt vời –

8
#include <iomanip> 

std::string doubleToString(double val) 
{ 
    std::ostringstream out; 
    out << std::fixed << val; 
    return out.str(); 
} 
2

Bạn cũng có thể thiết lập chiều rộng tối thiểu và điền char hạ điều khiển STL IO, như:

 
out.width(9); 
out.fill(' '); 
Các vấn đề liên quan