/// 自定義數字解析函式
/// 說明:如果輸入的字串為空或非數字開頭則返回0,否則返回解析結果
/// 輸入的字串
///
解析後的結果
static double coustomnumber(string str)
if (string.isnullorempty(str)) return 0d;//如果輸入的字串為空或null,則直接返回0
if (!char.isdigit(str[0])) return 0d;//如果輸入的字串是非數字開頭,直接返回0
string subv = string.empty;
for (int i = 0; i < str.length; i++)
if (char.isdigit(str[i]) || str[i].equals('.') && !subv.contains("."))//從左至右,
//判斷字串的每位字元是否是數字或小數點,小數點只保留第乙個
subv += str[i];
subv.trimend(new char );// 如果解析後的子字串的末位是小數點,則去掉它
string strright = string.empty;
double strreturn =0d;
if (subv.contains("."))// 如果解析結果包含小數點,則根據小數點分兩段求值
strright = subv.substring(subv.indexof('.')+1);//小數點右側部分
subv = subv.substring(0,subv.indexof('.'));//小數點左側部分
for (int i = 0; i < strright.length; i++)//計算小數點右側的部分
strreturn += ((int)strright[i] - 48) / math.pow(10, i + 1);//(int)strright[i] 是取該字元的ascii碼
for (int i = 0; i < subv.length; i++)//計算小數點左側的部分
int t = ((int)subv[i] - 48);
strreturn += t * math.pow(10, subv.length - i - 1);//按位乘以10的冪,並和小數點右側結果相加
return strreturn;
字串轉化為數字
如何把entry中輸入的字串轉化為對應的數字 例如,如果輸入為s 0 12 3 40 怎麼把它轉化為對應的數字呢?根據需要,胡亂寫了 記錄在此。功能 把字串轉化為數字列表 輸入s 字串 輸出 數字列表 def strtonum s s 0 12 3 40 p 用來存放字串中的數字 0,1,2,3,4...
C語言 字串轉化為數字
int atoi const char str convert string to integer 忽略str前方的空白,直到遇到第乙個非空白字元,如果第乙個非空白字元是正負號或者數字,則轉換盡可能長的有效字元為數字。如果沒有合法的轉換返回0,如果轉換後的值超過int表示範圍,int max or ...
C 語法之字串與數字轉化
採用最原始的string,然後按照十進位制的特點進行算術運算得到int,但是這種方式太麻煩,這裡不介紹了。採用標準庫中atoi函式。string s 12 int a atoi s.c str 對於其他型別也都有相應的標準庫函式,比如浮點型atof long型atol 等等。採用sstream標頭檔...