12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * @Author: code4eat awesomedema@gmail.com
- * @Date: 2022-12-14 14:14:32
- * @LastEditors: code4eat awesomedema@gmail.com
- * @LastEditTime: 2025-04-30 14:52:04
- * @FilePath: /BudgetManaSystem/src/utils/format.ts
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
- // 示例方法,没有实际意义
- export function trim(str: string) {
- return str.trim();
- }
- // 定义金额格式化选项的接口
- interface FormatMoneyOptions {
- decimalPlaces?: number; // 指定小数位数
- useThousandSeparator?: boolean; // 是否使用千分号
- }
- //金额数字转换
- export function formatMoneyNumber(num: number | string | undefined | null, options?: FormatMoneyOptions) {
- if (num === undefined || num === null || num === '') {
- return '-'; // 对于空值或未定义值,返回 "-"
- }
- const numberToFormat = Number(num);
- if (isNaN(numberToFormat)) {
- return String(num); // 如果转换后不是有效数字,则返回原始字符串形式
- }
- // 默认小数位数为2,除非在选项中指定
- const minimumFractionDigits = options?.decimalPlaces !== undefined ? options.decimalPlaces : 2;
- const maximumFractionDigits = options?.decimalPlaces !== undefined ? options.decimalPlaces : 2;
- // 默认使用千分号,除非在选项中明确设置为 false
- const useGrouping = options?.useThousandSeparator === true;
- return new Intl.NumberFormat('en-US', {
- minimumFractionDigits: minimumFractionDigits,
- maximumFractionDigits: maximumFractionDigits,
- useGrouping: useGrouping, // 控制是否使用千分号
- }).format(numberToFormat);
- }
- export function formatToPercentage(num: number) {
- if (typeof num !== 'number' || isNaN(num)) {
- return num;
- }
- return new Intl.NumberFormat('en-US', {
- style: 'percent',
- minimumFractionDigits: 2,
- maximumFractionDigits: 2,
- }).format(num);
- }
|