/** * Floating-point precision utilities * * Provides functions to normalize floating-point numbers for consistent comparison * and display, addressing JavaScript's floating-point precision issues. */ import { PRECISION_MULTIPLIER } from '$lib/constants/precision'; /** * Normalize floating-point numbers for consistent comparison * Addresses JavaScript floating-point precision issues (e.g., 0.949999988079071 → 0.95) */ export function normalizeFloatingPoint(value: unknown): unknown { return typeof value === 'number' ? Math.round(value * PRECISION_MULTIPLIER) / PRECISION_MULTIPLIER : value; } /** * Type-safe version that only accepts numbers */ export function normalizeNumber(value: number): number { return Math.round(value * PRECISION_MULTIPLIER) / PRECISION_MULTIPLIER; }