CstringToInteger函式,不知道哪裡錯了

2022-12-15 08:06:04 字數 1018 閱讀 1589

1樓:

1、sum沒有初始化。2、pow 是double型別,會有誤差,可以寫成如下:

int tointeger(string str)

2樓:匿名使用者

string 是一個類,與字元型不一樣,要轉為字元型好像要用到一個轉換函式,具體函式不曉得,

3樓:匿名使用者

問題在於pow是進行浮點運算的,有興趣可以去看看ieee754標準,浮點數採用的是2進位制的浮點表示法,不能精確表示所有的10進位制浮點數,所以進行乘法以後,可能整數部分會有很小的誤差。

同時,你的**沒有初始化sum也是一個問題。

如下這樣寫就可以了,沒有必要用浮點轉一次。

int tointeger(string str)return res;}

4樓:

pow函式是的返回值是double的,你這直接轉換會損失精度的,比如pow(10,2)=99.9999999都有可能,然後轉換成int,損失了精度建議不要用pow,或者sum += (str[i] - '0') *(int) (pow(10,str.length()-1-i)+0.

5);另外用int可能溢位,建議用long

給你寫了個遞迴的,測試了沒問題

long tointeger( string str )

5樓:匿名使用者

你的sum初始值就不確定,int sum=0;試試

程式本身沒什麼錯

6樓:匿名使用者

sum 沒有初始化,

改為int sum = 0;

7樓:匿名使用者

第一sum沒有賦值 想不到結果居然跟正確答案差不多

第二 pow在vc6.0中原型為double pow( double x, double y ); 可能是丟失了精度

8樓:匿名使用者

你的資料可能溢位了,可以用longlong

想學催眠,不知道怎麼學,想學技術不知道去哪裡學

催眠術這種還是需要找正規的醫學方面的導師指導教學的,不能自己瞎學。想學技術不知道去 學 現在的話你可以選擇去學 個關於汽車方面的的技術嘛 感覺還是挺不的哦 你覺得呢 當然是技術學校呀,專業的技術學校,通過全面系統的理論知識和每天的實際操作課,高效的學習技術。現在學技術 還是學廚師比較好 現在社會對廚...

不知道人生方向在哪裡

別為工資高低去工作,為自己的興趣愛好去做事,那樣的結果是事半功倍,而且自己的心情也會好,可能我的想法不實際,最好還是結合自己的的實際情況再做決定 的確,很多人都不清楚自己的人生方向。作為一個人,我們不能迷迷糊糊的活著,有必要搞清楚活著為什麼?否則自己很難原諒自己。從小,就沒有人告訴我們人生的意義是是...

想學計算機程式設計,不知道從哪裡入手

譚浩強編寫的 c程式設計 綠色封皮。學校上課就用這本書,挺好的。c語言是程式設計的基礎,你即使不用c程式設計,學完c之後,在學其它的程式語言都要容易一些。何勤 c語言程式設計問題求解與方法 明年一月就會上架吧,不過我們已經買到而且正在學。何勤是我老師,他那本書確實不錯。還有你可以看 穿越計算機的迷霧...