字串轉化成整數

2022-09-06 19:15:13 字數 1371 閱讀 9874

看起來容易,但是有好多需要考慮到邊界條件。

比如1.如果含有正負號或者非數字字元怎麼辦?

2.最大正整數和最小負整數以及溢位

3.輸入的字元不能轉換成整數的時候,應該如何處理錯誤

所以其實還是比較複雜。不要看到題目就傻呵呵的寫了。= =

js 中有封裝好的parseint,但是傳入的引數要注意:parseint(string, radix)

1. 當radix<2 / radix > 36時,返回nan

2.當string中的單個數字大於radix時,返回nan

3.當radix===0 / 未設定時,根據string來判斷

當string以『0x』開頭時,按照16進製制解析

當string以『0』開頭時,按照八進位制解析

當strign以『1~9』開頭時,按照十進位制解析

拓展:(曾經跪在螞蟻面試中的題)實現乙個函式,把輸入的數字保留兩位小數,不進製,如果不足兩位,以0補位。

function

twodecimal(num)

var n = snum.split('.');

if (n.length === 1)

else

return res +tail;}}

var s1 = twodecimal(5);

console.log('s1+' +s1);

var s2 = twodecimal(5.2);

console.log('s2+' +s2);

var s3 = twodecimal(0.232543);

console.log('s3+' +s3);

var s4 = twodecimal('5.232543.099');

console.log('s4+' +s4);

var s5 =twodecimal(nan);

console.log('s5+' +s5);

var s6 = twodecimal('dskljaf');

console.log('s6+' +s6);

var s7 = twodecimal(number.max_value * 2);

console.log('s7+' +s7);

var s8 = twodecimal(1e100);

console.log('s8+' +s8);

var s9 =twodecimal(number.max_value);

console.log('s8+' + s9);

輸出結果:

如果**不對,還請老鐵指正 :-) 

把字串轉化成整數

這道題看似很簡單,實現其基本功能,大部分人都能用10行 之內的 解決。while str 但是,當我們要把很多特殊的情況即測試用例都考慮進去,卻不是一件容易的事。比如 空指標 空字串 正負號 溢位等方方面面的測試用例都考慮到,並在寫 時對這些特殊的輸入都定義好合理的輸出,define crt sec...

整數轉化成字串 字串轉換為整數

整數轉化成字串 字串轉換為整數 整數轉化成字串 char inttostr int num,char str temp i 0 字串結束標誌 i i 1 回到temp最後乙個有意義的數字 while i 0 str j 0 字串結束標誌 return str 字串轉換為整數,僅考慮十進位制,不考慮非...

劍指offer 字串轉化成整數

題目 把乙個字串轉換成整數 分析 這個題目不難,難點在於輸入的判定,目標是,任何輸入都有正確的轉化值和返回值。測試會出現的問題有 1.空指標。返回值是0,status為0 2.區分空指標和 0 通過設定全域性變數來區分。0的返回值是0 status是1 3.非法輸入,除了正負號。返回值是0 stat...