# toInteger
# Description
转换 value
为一个整数。
# Params
Value
# Return
Number
# Depend
import toFinite from './toFinite.js'
# Code
function toInteger(value) {
const result = toFinite(value)
const remainder = result % 1
return remainder ? result - remainder : result
}
# Analyze
- 首先通过
toFinite
将value
转换为一个 有限数字 - 通过
%
运算拿到 小数点之后的部分 - 判断如果存在小数部分,则返回
result
减去小数部分的结果,否则直接返回result
# Remark
- 求余(%) MDN (opens new window)
- 这里关于数字的计算会出现一些比较有意思的事情,可以查看 0.1+0.2 != 0.3
// 1. 如果我们传入的 value 为 3.33
const result = 3.33
// 2. 得到小数部分
const remainder = result % 1 // 0.33000000000000007
// 3. 最终返回的结果
return 3.33 - 0.33000000000000007 // 3
3.33 - 0.33000000000000007 === 3 // true
# Example
toInteger(3.2) // => 3
toInteger(Number.MIN_VALUE) // => 0
toInteger(Infinity) // => 1.7976931348623157e+308
toInteger('3.2') // => 3