@fnmain/number
Advanced tools
Comparing version 1.5.0 to 1.5.1
@@ -12,3 +12,3 @@ type Options = { | ||
export declare function toPercent(value: number, { fixed, trimEndZeros, space }?: Options): string; | ||
export declare function parseNumber(input: string): number | null; | ||
export declare function parseNumber(input: string): number; | ||
export declare function isNumber(value: any): boolean; | ||
@@ -15,0 +15,0 @@ export declare function isNotNumber(value: any): boolean; |
@@ -82,3 +82,3 @@ "use strict"; | ||
const number = parseFloat(input.slice(0, -1)); | ||
return isNaN(number) ? null : number / 100; | ||
return isNaN(number) ? NaN : number / 100; | ||
} | ||
@@ -88,3 +88,3 @@ // Check for per mille | ||
const number = parseFloat(input.slice(0, -1)); | ||
return isNaN(number) ? null : number / 1000; | ||
return isNaN(number) ? NaN : number / 1000; | ||
} | ||
@@ -95,7 +95,7 @@ // Check for suffixes (k, m, g, t) | ||
const number = parseFloat(input.slice(0, -1)); | ||
return isNaN(number) ? null : handleSuffix(number, suffixMatch[0]); | ||
return isNaN(number) ? NaN : handleSuffix(number, suffixMatch[0]); | ||
} | ||
// Check for scientific notation and other formats | ||
const number = parseFloat(input); | ||
return isNaN(number) ? null : number; | ||
return isNaN(number) ? NaN : number; | ||
} | ||
@@ -115,5 +115,2 @@ exports.parseNumber = parseNumber; | ||
val = parseNumber(value); | ||
if (val === null) { | ||
throw new Error("Invalid number format"); | ||
} | ||
} | ||
@@ -120,0 +117,0 @@ else { |
@@ -27,3 +27,3 @@ "use strict"; | ||
console.log((0, index_1.parseNumber)("1亿")); // 100000000 | ||
console.log((0, index_1.parseNumber)("abc")); // null | ||
console.log((0, index_1.parseNumber)("abc")); // NaN | ||
console.log((0, index_1.parseNumber)("1,000,000")); // 1000000 | ||
@@ -30,0 +30,0 @@ console.log((0, index_1.isNumber)(null)); // false |
{ | ||
"name": "@fnmain/number", | ||
"version": "1.5.0", | ||
"version": "1.5.1", | ||
"description": "number utils", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -72,3 +72,3 @@ type Options = { | ||
export function parseNumber(input: string): number | null { | ||
export function parseNumber(input: string): number { | ||
input = input.trim(); // Remove whitespace | ||
@@ -103,3 +103,3 @@ input = input.replace(/,/g, ""); // Remove commas | ||
const number = parseFloat(input.slice(0, -1)); | ||
return isNaN(number) ? null : number / 100; | ||
return isNaN(number) ? NaN : number / 100; | ||
} | ||
@@ -110,3 +110,3 @@ | ||
const number = parseFloat(input.slice(0, -1)); | ||
return isNaN(number) ? null : number / 1000; | ||
return isNaN(number) ? NaN : number / 1000; | ||
} | ||
@@ -118,3 +118,3 @@ | ||
const number = parseFloat(input.slice(0, -1)); | ||
return isNaN(number) ? null : handleSuffix(number, suffixMatch[0]); | ||
return isNaN(number) ? NaN : handleSuffix(number, suffixMatch[0]); | ||
} | ||
@@ -124,3 +124,3 @@ | ||
const number = parseFloat(input); | ||
return isNaN(number) ? null : number; | ||
return isNaN(number) ? NaN : number; | ||
} | ||
@@ -137,9 +137,6 @@ | ||
export function formatWithCommas(value: number | string): string { | ||
let val: number | null; | ||
let val: number; | ||
if (typeof value === "string") { | ||
val = parseNumber(value); | ||
if (val === null) { | ||
throw new Error("Invalid number format"); | ||
} | ||
} else { | ||
@@ -146,0 +143,0 @@ val = value; |
@@ -29,3 +29,3 @@ import { formatWithCommas, isNotNumber, isNumber, parseNumber, toAuto, toPercent } from "./index"; | ||
console.log(parseNumber("1亿")); // 100000000 | ||
console.log(parseNumber("abc")); // null | ||
console.log(parseNumber("abc")); // NaN | ||
console.log(parseNumber("1,000,000")); // 1000000 | ||
@@ -32,0 +32,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
20675
321