重构
This commit is contained in:
1 parent
33913c29d2
commit
42fd6e48c4
19 files changed
+1163
-420
No files matched your search
+12
-2
@@ -6,7 +6,7 @@ export const toFiniteNumberOrNull = (value: unknown): number | null =>
|
||||
|
||||
export const parseNumberOrNull = (
|
||||
value: unknown,
|
||||
options?: { sanitize?: boolean }
|
||||
options?: { sanitize?: boolean; precision?: number }
|
||||
): number | null => {
|
||||
if (value === '' || value == null) return null
|
||||
|
||||
@@ -16,5 +16,15 @@ export const parseNumberOrNull = (
|
||||
: value
|
||||
|
||||
const numericValue = Number(normalized)
|
||||
return Number.isFinite(numericValue) ? numericValue : null
|
||||
if (!Number.isFinite(numericValue)) return null
|
||||
|
||||
const precision = options?.precision
|
||||
if (typeof precision !== 'number' || !Number.isInteger(precision) || precision < 0) {
|
||||
return numericValue
|
||||
}
|
||||
|
||||
const factor = 10 ** precision
|
||||
if (!Number.isFinite(factor) || factor <= 0) return numericValue
|
||||
if (numericValue >= 0) return Math.round((numericValue + Number.EPSILON) * factor) / factor
|
||||
return -Math.round((-numericValue + Number.EPSILON) * factor) / factor
|
||||
}
|
||||
Reference in new issue
Block a user