首先要先搞懂這三個有什麼差別跟如何使用?toFixed(), toExponential() and toPrecision()
這三個回傳的都是字串,
toFixed():可把 Number 四舍五入為指定小數位數的數字。
toExponential():可把對象的值轉換成指數計數法。寫法:3.54e3,
在電腦或計算機中一般用 e 來代表指數 後面接數字,可為正數或負數。
toPrecision():是以多少位的有效數字來表示,該值可能會回傳固定大小(fixed)格式,也可能回傳指数(exponential)格式,會根據數值决定回傳的值,例如:
let num = 98.73;
num.toPrecision(0); // RangeError: toPrecision() argument must be between 1 and 100
num.toPrecision(1); // '1e+2'
'1e+2' // 100
num.toPrecision(2); // '99'
num.toPrecision(3); // '98.7'
num.toPrecision(4); // '98.73'
num.toPrecision(5); // '98.730'
今天的題目:
Coding in function howManySmaller, function accept 2 parameter:arr and n. arr is a decimal array. n is a decimal.
The first mission: let all elements in the array keep two decimal places(No need to convert number n).
The second mission: Traversal arr, count the number of the element which smaller than n and return it.
for example:
howManySmaller([1.234,1.235,1.228],1.24) should return 2
howManySmaller([1.1888,1.1868,1.1838],1.19) should return 1
howManySmaller([3.1288,3.1212,3.1205],3.1212) should return 2
簡單來說,就是要先把arr的數字取到小數點兩位,再跟n比較,比n小的數字有幾個?
下面是我的解法:
function howManySmaller(arr,n){
let count = 0;
for(let i in arr){
if(arr[i].toFixed(2) < n){
count++
}
}
return count
}
用迴圈來檢查每一個數字,若比n小,count++