還是處於控件顯示的原因,比如說要顯示文件的大小,我們從服務器可以獲得這個文件的總bytes。這樣就需要我們根據實際情況是顯示bytes、kb、mb等單位。
常用的做法就是把num_bytes/1024,這個時候往往會得到浮點型,浮點型轉string也沒問題,但是如果你需要保留這個浮點型的一位或是幾位小數,怎麼操作會方便快捷呢?
你進行了相關搜索,但是很多人給你的回答都是要麼使用cout, 要麼使用printf進行格式化輸出。
我們使用的是stringstream
Stringstreams allow manipulators and locales to customize the result of these operations so you can easily change the format of the resulting string
#include
#include
#include
#include // this should be already included in
// Defining own numeric facet:
class WithComma: public numpunct // class for decimal numbers using comma instead of point
{
protected:
char do_decimal_point() const { return ','; } // change the decimal separator
};
// Conversion code:
double Number = 0.12; // Number to convert to string
ostringstream Convert;
locale MyLocale( locale(), new WithComma);// Crate customized locale
Convert.imbue(MyLocale); // Imbue the custom locale to the stringstream
Convert << fixed << setprecision(3) << Number; // Use some manipulators
string Result = Convert.str(); // Give the result to the string
// Result is now equal to 0,120
setprecision
控制輸出流顯示浮點數的有效數字個數 ,如果和fixed合用的話,可以控制小數點右面的位數
但是這裡需要注意的是頭文件:
#include