File size: 828 Bytes
31dd200
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**

 * 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;
}