程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 實戰c++中的string系列--指定浮點數有效數字並轉為string

實戰c++中的string系列--指定浮點數有效數字並轉為string

編輯:C++入門知識

實戰c++中的string系列--指定浮點數有效數字並轉為string


 

還是處於控件顯示的原因,比如說要顯示文件的大小,我們從服務器可以獲得這個文件的總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 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved