数字Number
padInt
数字补0
类型说明
INFO
function padInt(value: string | number, len?: number): string;
参数
- value 数字或者字符串的数字
- len 补充的长度, 默认2
返回
string
TIP
返回字符串
示例
ts
padInt(1) => '01'
ts
padInt(12) => '12'
ts
padInt(12, 3) => '012'
源码
Ts
export default function padInt(value: string | number, len = 2): string {
if (isNaN(Number(value))) throw '不是一个合法的数字'
return Number(value).toString().padStart(len, '0')
}
Js
export default function padInt(value, len = 2) {
if (isNaN(Number(value))) throw '不是一个合法的数字';
return Number(value).toString().padStart(len, '0');
}
toFixed
数字保留小数位
类型说明
INFO
function toFixed<T extends 'number' | 'string' = 'number'>(value: number | string, num?: number, isRound?: boolean, returnType?: T): T extends 'string' ? string : number;
参数
- value 数字
- num 保留的小数位
- isRound 是否需要四舍五入
- returnType 返回类型 数字 或 字符串
返回
T extends 'string' ? string : number
TIP
返回数字 或 字符串
异常
DANGER
无法转换为数字
DANGER
value 无法转换为数字
DANGER
isRound不是boolean
DANGER
type 不是 number 或 string
示例
ts
toFixed(1) // 1
ts
toFixed(1.21) // 1.21
默认会四舍五入
ts
toFixed(1.238, 2) // 1.24
不进行四舍五入
ts
toFixed(1.238, 2, false) // 1.23
源码
Ts
import isBoolean from '@/verify/isBoolean'
export default function toFixed<T extends 'number' | 'string' = 'number'>(
value: number | string,
num = 2,
isRound = true,
returnType?: T
): T extends 'string' ? string : number {
if (returnType == undefined) returnType = 'number' as T
if ((typeof value === 'string' && isNaN(value as any)) || typeof value !== 'number') {
throw new TypeError('value 无法转换为数字')
}
if (!isBoolean(isRound)) throw 'isRound不是boolean'
if (returnType !== 'number' && returnType !== 'string') throw 'type 不是 number 或 string'
value = value.toString()
const formatNumber = (value: string) => {
const parts = value.split('.')
const integerPart = parts[0]
const decimalPart = (parts[1] || '').slice(0, num).padEnd(num, '0')
return `${integerPart}.${decimalPart}`
}
const nValue = isRound ? Number(value).toFixed(num) : formatNumber(value)
return (returnType === 'string' ? nValue : Number(nValue)) as T extends 'string' ? string : number
}
Js
import isBoolean from '@/verify/isBoolean';
export default function toFixed(value, num = 2, isRound = true, returnType) {
if (returnType == void 0) returnType = 'number';
if (typeof value === 'string' && isNaN(value) || typeof value !== 'number') {
throw new TypeError('value 无法转换为数字');
}
if (!isBoolean(isRound)) throw 'isRound不是boolean';
if (returnType !== 'number' && returnType !== 'string') throw 'type 不是 number 或 string';
value = value.toString();
const formatNumber = (value2) => {
const parts = value2.split('.');
const integerPart = parts[0];
const decimalPart = (parts[1] || '').slice(0, num).padEnd(num, '0');
return `${integerPart}.${decimalPart}`;
};
const nValue = isRound ? Number(value).toFixed(num) : formatNumber(value);
return returnType === 'string' ? nValue : Number(nValue);
}
toNumber
转换为数字
类型说明
INFO
function toNumber<T>(value: T): number;
参数
- value 任意值
返回
number
TIP
返回数字
异常
DANGER
无法转换为数字
示例
ts
toNumber('1') // 1
ts
toNumber('1.2') // 1.2
ts
toNumber('a123') // error => a123无法转换为数字
源码
Ts
export default function toNumber<T>(value: T): number {
if (isNaN(Number(value))) throw `${value}无法转换为数字`
return Number(value)
}
Js
export default function toNumber(value) {
if (isNaN(Number(value))) throw `${value}无法转换为数字`;
return Number(value);
}
isInt
是否为整数
类型说明
INFO
function isInt(value: any): boolean;
参数
- value 检查的值
返回
boolean
TIP
true | false
示例
ts
isInt(1) // => true
ts
isInt(1.21) // => false
源码
Ts
export default function isInt(value: any): boolean {
return Number.isInteger(value)
}
Js
export default function isInt(value) {
return Number.isInteger(value);
}
isNumber
判断是否为数字
类型说明
INFO
function isNumber(value: any): boolean;
参数
- value 任意值
返回
boolean
TIP
true | false
示例
验证通过
ts
isNumber(123) => true
验证失败
ts
isNumber('123') => false
源码
Ts
import typeOf from '@/common/typeOf'
export default function isNumber(value: any): boolean {
return typeOf(value) === 'Number'
}
Js
import typeOf from '@/common/typeOf';
export default function isNumber(value) {
return typeOf(value) === 'Number';
}