| | |
| | | // 避免出现 "-0.00" 这类负零显示 |
| | | return parseFloat(text) === 0 ? text.replace(/^-/, "") : text; |
| | | }; |
| | | |
| | | /** |
| | | * 最多保留 6 位小数:超过 6 位的按十进制四舍五入,再去掉末尾多余的 0 |
| | | * 用于采购/销售台账的金额、数量、单价等字段 |
| | | * 例:52333.580000 -> 52333.58 ;1.23456789 -> 1.234568 ;0.1 + 0.2 -> 0.3 |
| | | * @param {string|number} value 原始值 |
| | | * @returns {string} 格式化后的字符串 |
| | | */ |
| | | export const formatDecimal6 = (value) => { |
| | | if (value === undefined || value === null || value === "") { |
| | | return "0"; |
| | | } |
| | | const num = typeof value === "number" ? value : Number(value); |
| | | // 非数字(如 "-"、"--")原样返回,避免把占位符显示成 0 |
| | | if (!Number.isFinite(num)) { |
| | | return String(value); |
| | | } |
| | | return trimZeros(roundHalfUp(num, 6), 6); |
| | | }; |