請問,C 如何對CString型別的資料轉換為小數

2022-03-01 13:10:24 字數 5148 閱讀 5032

1樓:匿名使用者

float a;

a=atof(finsuredamount);

a就是3.9

c++ mfc cstring怎麼轉換成double

2樓:輕煙談生活

1、開啟編寫c語言的軟體codeblocks。

2、建立一個編寫c語言的檔案。

3、接下來開始編寫程式,首先是準備轉換中需要用到的變數和常量。

4、接著是使用clrscr函式限定開始轉換,並且給value賦值為自己想要轉換的double型資料。

5、再然後就是使用ecvt函式開始進行轉換,並且將轉換的結果付給字元陣列string。

6、接著就是使用printf函式輸出用於接收value值的字串string。

7、最後可以在控制檯上看到輸出的結果,正式value的值,不過這個值程式設計字串格式了。

3樓:匿名使用者

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

%c 單個字元

%d 十進位制整數(int)

%ld 十進位制整數(long)

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

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

%o 八進位制數

%s 字串

%u 無符號十進位制數

%x 十六進位制數

1、int轉換為cstring

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就可以了。

2、double轉換為cstring

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%就可以了。

3、將十進位制數轉換為八進位制

cstring str;

int num=255;

//str="377"

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

//str="00000377"

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

2.cstring轉化為double型

atof()

4樓:匿名使用者

1、首先要確定你的工程字符集用的是多位元組而不是unicode才能用下面的方法, 因為vs2008/2010預設使用的是unicode編碼. 修改方式為: 在解決方案視窗右鍵工程名-->屬性->general項(我用的是英文的)-->字符集, 選擇多位元組那個就行了

2、例程:

cstring str;

轉成int: ;int a = atoi(str.getbuffer());

轉成double: double b = atof(str.getbuffer());

// 如果堅持要用unicode的話, 就用下面兩個函式:

轉成int: ;int a = _wtoi(str.getbuffer());

轉成double: double b = _wtof(str.getbuffer());

5樓:匿名使用者

1:可以為控制元件關聯一個double型別變數,然後updatedata(false

)2;或者樓上函式double d=_wtof(a.getbuffer(0))

6樓:匿名使用者

例如cstring temp = _t("1.234");

如何轉換成浮點1.234

#include

int main()

p=a/365;

for(int i=1;i<=70;i++)return 0;}

7樓:匿名使用者

檢查一下有沒有

#include

和#include

這兩個標頭檔案。

8樓:飛天

double _wtof(

const wchar_t *str

);用這個試試。你用的不是vc6.0吧?

c++程式設計 cstring用atof轉換成float時,值從0.39999變成了0.39998999.請問是什麼問題?該怎麼解決?

9樓:匿名使用者

浮點數的精度有限,不是每個你用字串寫出來的小數都有完全對應的浮點數的。

要解決,你可以使用更高精度的浮點數,或者特殊的小數處理類庫,或者用定點數表示浮點數

10樓:青雲

對精度要求更高的話,可以使用strtod()。

11樓:黯湮灬逍遙

浮點數精度問題

可以在輸出時格式化的方法解決:sprintf(stdout, "%.5f", n);這樣輸出, 就是0.39999

12樓:

浮點數轉換的基礎規則:如十進位制的 0.5 = 2的-1次方,0.25 = 2的-2次方,同理,0.125 = 2的-3次方。以此下去

說了上邊的基礎後,能知道方法是:0.5(10) = 0.

1(2),0.25(10) = 0.01(2),0.

75 = 0.5+0.25 = 0.

11(2),0.625 = 0.5+0.

125 = 0.101

細心會發現,存在將一個有窮的十進位制的小數轉為無窮二進位制的現象(例如0.7 = 0.5+0.125+0.625+...),因為位數有限,最後會出現「掉位」。

這個是有解決辦法的,不過現在就快上課了

mfc中如何吧cstring型別轉換為double或int型??

13樓:匿名使用者

修改方式為: 在解決方案視窗右鍵工程名-->屬性->general項(我用的是英文的)-->字符集, 選擇多位元組那個就行了。

1、轉成int:int a = atoi(str.getbuffer());

2、轉成double:double b = atof(str.getbuffer())。

cstring 是一種很有用的資料型別。它們很大程度上簡化了mfc中的許多操作,使得mfc在做字串操作的時候方便了很多。不管怎樣,使用cstring有很多特殊的技巧,特別是對於純c背景下走出來的程式設計師來說有點難以學習。

mfc是微軟基礎類庫的簡稱,是微軟公司實現的一個c++類庫,主要封裝了大部分的windows api函式,並且包含一個應用程式框架,以減少應用程式開發人員工作量。vc++是微軟公司開發的c/c++的整合開發環境,所謂整合開發環境,就是說利用它你可以編輯,編譯,除錯,而不是使用多種工具輪換操作,靈活性較大。有時人們說vc呢也指它的內部編譯器,整合開發環境必須有一個編譯器核心,要不有什麼用,例如devc++其中一個編譯器核心就是gcc。

mfc除了是一個類庫以外,還是一個框架,你應該試過,在vc++裡新建一個mfc的工程,開發環境會自動幫你產生許多檔案,同時它使用了mfcxx.dll。xx是版本,它封裝了mfc核心,所以你在你的**看不到原本的sdk程式設計中的訊息迴圈等等東西,因為mfc框架幫你封裝好了,這樣你就可以專心的考慮你程式的邏輯,而不是這些每次程式設計都要重複的東西,但是由於是通用框架,沒有最好的針對性,當然也就喪失了一些靈活性和效率但是mfc的封裝很淺,所以效率上損失不大,靈活性還可以,雖然也有很多缺陷,但還是一個比較好的東西。

14樓:匿名使用者

首先你要確定你的工程字符集用的是多位元組而不是unicode才能用下面的方法, 因為vs2008/2010預設使用的是unicode編碼. 修改方式為: 在解決方案視窗右鍵工程名-->屬性->general項(我用的是英文的)-->字符集, 選擇多位元組那個就行了

cstring str;

轉成int: ;int a = atoi(str.getbuffer());

轉成double: double b = atof(str.getbuffer());

// 如果你堅持要用unicode的話, 你就用下面兩個函式:

轉成int: ;int a = _wtoi(str.getbuffer());

轉成double: double b = _wtof(str.getbuffer());

15樓:匿名使用者

先(lpctstr)你的cstring,然後atof或者atoi它,前提是你的cstring必須是有效的double或者int。

16樓:匿名使用者

char *s; double x; int i; long l;

s = " -2309.12e-15"; /* test of atof */

x = atof( s );

printf( "atof test: ascii string: %s\tfloat: %e\n", s, x );

這是msdn上關於ascii的一個例子,相信可以幫助到你了吧

c語言資料型別如何轉換C語言資料型別如何轉換?

不是有強制型別 轉換嗎?強制型別轉換 強制型別轉換 當運算元的型別不同,而且不屬於基本資料型別時,經常需要強制型別轉換,將運算元轉化為所需要的型別。強制型別轉換具有兩種形式,稱為顯式強制轉換和隱式強制型別轉換。1 顯式強制型別轉換 顯式強制型別轉換需要使用強制型別轉換運算子,格式如下 type 或 ...

請問c語言中,unsigned int型別變數可以賦給int

可以賦值,正數無所謂,負數會有符號位的問題,賦值後會和原來不一樣,是因為負數在系統中是用補碼的形式存放的 這個可能會出現問題哦,只要數值不是大於2的七次方就不會出現任何問題,如果超過了,編譯器就會報錯說你放的數太大了。unsigned int可以賦值給int,加強制型別轉換。有溢位問題 有可能 比如...

請問如何對excel中的時間求和?型別是 xx分xx秒,樣式如圖所示

不足分按分算.這裡對,可對以下格式進行三種格式運算1分33秒 3分20秒 下面公式的取值範圍是d2 d20單元格,需要根據實際單元格區域進行調整.必須保證單元格區域內的資料格式為上面三種格式,且不能有空格.陣列公式,輸入後按shift ctrl enter結束 sum if iserror find...