一道面試題引起的好奇 數字千分位

2022-06-10 12:18:09 字數 1036 閱讀 9680

一道面試題引起的好奇:

題目:12000000.11 如何將浮點數小數點左邊的數每三位加乙個逗號,如12,000,000.11?

答案:

function

commafy(num))+\.)/g, function($1, $2));

}console.log(12000000.11) // 12,000,000.11

console.log(112000000.11) // 112,000,000.11

console.log(-112000000.11) // -112,000,000.11

利用了字串的replace方法及正則實現。

用前向宣告和分組,第二個()從後往前匹配3位數字,即$2。每匹配到乙個$2就在後面加上逗號,返回。

滿足題目要求,但是實際中會存在數字不帶小數點的情況,上面的實現方式就無法滿足了。修改了一下,支援不帶小數點的數字。

用前向宣告和非前向宣告,從後往前匹配3位數字,向前宣告的地方替換成逗號,但是如果剛好是3的倍數字,會第一位前面也加,,所以前面要再來個非前向宣告。

//

數字千分位

function

commafy (num)

if (num && num.tostring().indexof('.') > 0) )+\.)/g, ($0, $1) =>)

} else

)+$)/g, ',')

}}

console.log(12000000.11) // 12,000,000.11

console.log(112000000.11) // 112,000,000.11

console.log(-112000000.11) // -112,000,000.11

console.log(12000000) // 12,000,000

console.log(112000000) // 112,000,000

console.log(-112000000) // -112,000,000

一道面試題引起的思考

今天在認真幹 劃 活 水 的時候,看到群裡有人發了一道頭條的面試題,就順便看了一下,發現挺有意思的,就決定分享給大家,並且給出我的解決方案和思考過程。題目如下 實現乙個get函式,使得下面的呼叫可以輸出正確的結果 const obj target 1,2,get obj,selector.to.to...

一道面試題的解析

一道面試題的解析 題目 1.畫三角形,四邊形,圓形,在視窗中移動,碰到視窗邊緣會自動彈回 2.通過選單,可以增加三角形,四邊形,圓形 3.對選中的圖形,可以設定填充顏色,線條寬度 4.畫三角形,四邊形,圓形,採用 bitmap 和位置兩種方式實現,位圖實現不設定填充顏色,線條寬度,隨機產生位置。5....

一道普通的面試題

第一次面試的時候,被問到這麼一道題 計算機中資料是以二進位制來儲存的,如何先將乙個數的二進位制形式逆序,然後再把新得到的數用整數形式輸出?比如13表示為 1101,逆序后位 1011,用整數形式輸出結果為11。當時自己想的很複雜,主要考慮了兩種情況,一種是不考慮原始資料前面隱藏的0,從第一位不為0的...