Appearance
formatPercent
描述
格式化百分位数值,将数字转换为百分比形式显示。支持正负号显示、乘以100处理等功能,当输入值无效时返回 '--'。结果保留2位小数,使用严格四舍五入算法。
语法
ts
formatPercent(value: any, showSign?: boolean, mul100?: boolean): string参数
value(any): 需要格式化的数字,传入非法类型会返回 '--'showSign(boolean, 可选): 正数时是否携带+号,默认携带,0时不加+号mul100(boolean, 可选): 数值是否需要先乘以100再进行处理,默认会先乘100
返回值
string: 格式化后的百分比字符串,保留2位小数
异常
- 无异常抛出,无效输入返回 '--'
- 支持的无效输入包括:null、undefined、空字符串、非数字字符串、NaN、Infinity
示例
基本用法
ts
import { formatPercent } from '@fu/matrix';
// 基本格式化(保留2位小数)
formatPercent(0.1234); // => '+12.34%'
formatPercent(-0.1234); // => '-12.34%'
formatPercent(0.5); // => '+50.00%'
formatPercent(1); // => '+100.00%'
formatPercent(0.123456); // => '+12.35%' (四舍五入)
formatPercent(0); // => '0.00%'控制正号显示
ts
// 默认显示正号
formatPercent(0.1234); // => '+12.34%'
// 不显示正号
formatPercent(0.1234, false); // => '12.34%'
// 负数始终显示负号
formatPercent(-0.1234, false); // => '-12.34%'
// 0 时不加正号
formatPercent(0); // => '0.00%'
formatPercent(0, true); // => '0.00%'
formatPercent(0, false); // => '0.00%'控制乘以100处理
ts
// 默认乘以100
formatPercent(0.1234); // => '+12.34%'
// 不乘以100(输入已经是百分比形式)
formatPercent(12.34, true, false); // => '+12.34%'
formatPercent(50, true, false); // => '+50.00%'处理无效输入
ts
formatPercent(null); // => '--'
formatPercent(undefined); // => '--'
formatPercent(''); // => '--'
formatPercent('invalid'); // => '--'
formatPercent('abc123'); // => '--'
formatPercent('12.34.56'); // => '--' (无效数字格式)
formatPercent(NaN); // => '--'
formatPercent(Infinity); // => '--'字符串输入
ts
formatPercent('0.1234'); // => '+12.34%'
formatPercent('-0.1234'); // => '-12.34%'
formatPercent('12.34', true, false); // => '+12.34%'
// 支持带 % 的字符串输入(会自动解析)
formatPercent('1.2345%'); // => '+1.23%'
formatPercent('-12.34%', true, false); // => '-12.34%'
// 无效字符串格式会被拒绝
formatPercent('invalid'); // => '--'
formatPercent('12.34.56'); // => '--'
formatPercent('abc123'); // => '--'边界情况
ts
// 零值
formatPercent(0); // => '0.00%'
formatPercent(-0); // => '0.00%'
// 极小值
formatPercent(0.001); // => '+0.10%'
formatPercent(0.0001); // => '+0.01%'
// 极大值
formatPercent(1e10); // => '+1000000000000.00%'性能说明
- 时间复杂度: O(1)
- 空间复杂度: O(1)
- 保留2位小数,使用严格四舍五入算法,确保精度准确
- 字符串验证使用正则表达式,性能高效
相关方法
- formatNumber - 通用数字格式化函数
版本历史
- v1.0.0: 初始版本