small fixes
This commit is contained in:
@@ -1,6 +1,20 @@
|
||||
import { gcd } from "./fractions";
|
||||
import { simplifyRatio } from "./ratios";
|
||||
|
||||
/** Parse a strict decimal string (digits and optional single dot). Rejects scientific notation, trailing letters, etc. */
|
||||
export function parseStrictDecimal(input: string): number | null {
|
||||
const s = input.trim();
|
||||
if (!/^\d+(\.\d+)?$/.test(s)) return null;
|
||||
return parseFloat(s);
|
||||
}
|
||||
|
||||
/** Parse a strict integer string (digits only, no dot or letters). */
|
||||
export function parseStrictInt(input: string): number | null {
|
||||
const s = input.trim();
|
||||
if (!/^\d+$/.test(s)) return null;
|
||||
return parseInt(s, 10);
|
||||
}
|
||||
|
||||
export type AnswerResult =
|
||||
| { correct: true; simplified: boolean }
|
||||
| { correct: false; message: string };
|
||||
|
||||
Reference in New Issue
Block a user