2014-03-04 39 views
1

我正在開發一個錢程序。目前,我正在嘗試在顯示列表中顯示每次在會話中進行的事務的程序中參與其中。我的問題是,當我將轉換爲字符串的金額轉換爲字符串時,而不是在轉換爲字符串時顯示類似100.35的東西,而是顯示類似100.35000000的東西。我想知道是否有任何方法可以讓程序刪除額外的零?下面是我如何將數字轉換爲字符串如何將數字四捨五入到最近的hundreath並在C++中對該字符串進行顯示

int main(){ 

    double samplemoney=100.35; 
    string sample="Today we made $"; 
    string comsample; 
    comsample=sample+std::tostring(money)+"."; 
    cout<<comsample<<endl; 
    return 0; 

} 

在這部分與類處理我的主要程序的樣本,但正如我前面說的,好像不管什麼錢值我把是它將顯示一系列零,我希望我的程序刪除不必要的零。

回答

0

比方說,你有這樣的數字:

double number = 190.0391000; 

如果問題顯示值你可以使用

std::cout << std::setprecision(5) << number 

其中f是要顯示的號碼。

如果你的問題是有一個有限的精度,你可以通過以下方式用sprintf()的字符串:

char arr[128]; 
sprintf(arr,"%3.2f", number); 
std::string formattedstring(arr); 

或一個以上的C++化的方式是這樣的

std::stringstream strn; 
strn.precision(2); 
strn << std::fixed << number; 

然後按以下方式獲取字符串:

std::string formattedstring = strn.str(); 

我附上程序全文在這裏......我的機器上測試:

#include <sstream> 
#include <iostream> 
int main() { 
    float number=100.24324232; 
    std::stringstream strn; 
    strn.precision(2); 
    strn << std::fixed << number; 
    std::cout << strn.str() << "\n"; 
    return(0); 
} 
+0

我與這個有是我的號碼轉換爲字符串,然後把它變成一個矢量以後使用對不起,我忘了提,部分 – user2340686

+0

的主要問題@ user2340686更新了答案 – Jekyll

+0

我得到了錯誤的strn說不完整類型不允許或類似 – user2340686