From 7c1e171bab2ccc64e8e36a98ec252ca3a4b91187 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Fri, 11 Jul 2025 06:15:18 +0800 Subject: [PATCH] feat(components): [input-number] warn when exceeds the safe integer (#19405) --- .../components/input-number/src/input-number.vue | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/components/input-number/src/input-number.vue b/packages/components/input-number/src/input-number.vue index 8d5adb1796..173509ff94 100755 --- a/packages/components/input-number/src/input-number.vue +++ b/packages/components/input-number/src/input-number.vue @@ -192,6 +192,20 @@ const getPrecision = (value: number | null | undefined) => { } const ensurePrecision = (val: number, coefficient: 1 | -1 = 1) => { if (!isNumber(val)) return data.currentValue + if (val >= Number.MAX_SAFE_INTEGER && coefficient === 1) { + debugWarn( + 'InputNumber', + 'The value has reached the maximum safe integer limit.' + ) + return val + } else if (val <= Number.MIN_SAFE_INTEGER && coefficient === -1) { + debugWarn( + 'InputNumber', + 'The value has reached the minimum safe integer limit.' + ) + return val + } + // Solve the accuracy problem of JS decimal calculation by converting the value to integer. return toPrecision(val + props.step * coefficient) }