看起來容易,但是有好多需要考慮到邊界條件。
比如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...