CString與double互相轉化

2021-07-25 11:15:20 字數 1434 閱讀 8157

1.double轉化為cstring

在mfc程式中,可以使用format方法方便的實現int、float和double等數字型別轉換為cstring字串。以下是cstring的format支援的格式說明:

%c                 單個字元

%d                 十進位制整數(int)

%ld                十進位制整數(long)

%f                 十進位制浮點數(float)

%lf                十進位制浮點數(double)

%o                 八進位制數

%s                 字串

%u                 無符號十進位制數

%x                 十六進製制數

cstring str;

int number=15;

//str="15"

str.format(_t("%d"),number);

//str="  15"(前面有兩個空格;4表示將占用4位,如果數字超過4位將輸出所有數字,不會截斷)

str.format(_t("%4d"),number);

//str="0015"(.4表示將占用4位,如果數字超過4位將輸出所有數字,不會截斷)

str.format(_t("%.4d"),number);

long轉換為cstring的方法與上面相似,只需要把%d改為%ld就可以了。

cstring str;

double num=1.46;

//str="1.46"

str.format(_t("%lf"),num);

//str="1.5"(.1表示小數點後留1位,小數點後超過1位則四捨五入)

str.format(_t("%.1lf"),num);

//str="1.4600"

str.format(_t("%.4f"),num);

//str=" 1.4600"(前面有1個空格)

str.format(_t("%7.4f"),num);

float轉換為cstring的方法也同上面相似,將lf%改為f%就可以了。

cstring str;

int num=255;

//str="377"

str.format(_t("%o"),num);

//str="00000377"

str.format(_t("%.8o"),num);

2.cstring轉化為double型

double=atof(cstring);

error c2664: 「atof」: 不能將引數 1 從「cstring」轉換為「const char *」

解決:用_ttof代替atof 或 _wtof(str);

C string與integer互化的方法

舉例 string a 123 int b stoi a 這個時候的b就是integer type的123了。舉例 int c 123 string d to string c 這個時候的d就是string 形式的123了。以上兩種都適用於c 11 這個在我前一段時間寫乙個project的時候,遇到...

C string報未引入和CString互轉

c 在使用string類的時候報錯 string undeclared identifier 解決方法 include 引入string.而不是,using namespace std 引入命明空間.如果要輸出內容就要用 include include using namespace std cst...

CString轉換為double 創 轉

cstring轉換為double cstring strfloat float flt 或double fit 不過前面兩種方法在vs2005下執行結果不正確,在vc6.0開發環境下是可以的。說明 網上很多說的都是前兩種方法,結果double值只是字串的第乙個數字。方法一 flt float ato...