Improve scientific notation formatting

This commit is contained in:
Codex Agent
2026-03-08 10:46:36 +00:00
parent 7996f31f32
commit ca7632bf25
5 changed files with 81 additions and 23 deletions

View File

@@ -1,20 +1,19 @@
<script lang="ts">
import { solve } from '$lib/engine';
import { parseScientificNotation, type ScientificNotationParts } from '$lib/utils/formatScientific';
import ScientificNotationValue from '$lib/components/ScientificNotationValue.svelte';
import type { CalculatorDef } from '$lib/data/calculators';
export let config: CalculatorDef;
const numericSamples = [0.1, 0.5, 1, 2, 5, 10, 20, 50, 100];
type Row = { input: number; output: string; scientific?: ScientificNotationParts };
type Row = { input: number; output: string };
const buildRow = (value: number): Row => {
const formatted = solve(config, 1, value.toString(), '', '');
return {
input: value,
output: formatted.val2 || '—',
scientific: formatted.val2 ? parseScientificNotation(formatted.val2) ?? undefined : undefined,
};
};
@@ -45,14 +44,7 @@
<p class="chart-statement">
Converting {row.input} <span class="chart-unit">{inputLabel}</span> into <span class="chart-unit">{outputLabel}</span> equals
<span class="chart-output-value">
{#if row.scientific}
<span class="scientific-base">{row.scientific.base}</span>
<span class="scientific-suffix">
×10<sup>{row.scientific.exponent}</sup>
</span>
{:else}
{row.output}
{/if}
<ScientificNotationValue value={row.output} fallback="—" />
</span>
<span class="chart-output-unit">{outputLabel}</span>.
</p>