Which number was stored?
The input is a JavaScript Number (binary64). Math.fround selects a binary32 value with ties to even. The exact fractions below distinguish those two values from an author's intended decimal.
Sign · 1 bitExponent · 8 bitsFraction · 23 bitsClassification: . Hexadecimal bits: .
| Previous | Stored | Next |
|---|---|---|
| | |
Inspect the exact fractions and conversion error
- Exact input Number
- Exact binary32 stored value
- Signed error: stored minus input Number
These fractions decode the actual binary values. For the input written as 0.1, its difference from the intended rational 1/10 occurs before the conversion measured here.
Move a rounding boundary.
The same three inputs can give different results when each addition rounds to binary32. Compare both paths with an exact sum of the stored inputs.
Round (a + b), then add c
First rounded result
Final rounded result
Round (b + c), then add a
First rounded result
Final rounded result
Wider arithmetic before a loss can help. Widening an already rounded result cannot recover information that has disappeared.
An exact translation. A rounded output.
Start with a=(0,0), b=(1.4,1.6), c=(2.6,3.4). Store the local vertices in binary32, add the same origin to both axes in wider arithmetic, then store the global output in binary32. Those final stored coordinates define the orange triangle.
- Intended decimal double area in these units
- Exact local binary32 source double area
- Gap above the rounded origin in binary32
Double area is the determinant, twice the signed triangle area. Its sign answers a winding question; it does not certify accurate shape or positions.
| Vertex | Stored x | Stored y | Relative to stored a |
|---|
Separate local storage, unit scaling, and sensitivity
Keeping the local vertices and origin separate retains the local source double area: . Subtracting the origin after global binary32 storage cannot restore the discarded edges. Baking large global coordinates again can repeat the loss.
For these local edges, |sin(theta)| is approximately . This angle measure is dimensionless; it is not a complete condition number for the coordinate pipeline. The perturbation model and output of interest also matter.
The bounded power-of-two unit control preserves the normalized rounding pattern here. Raw area changes with squared units. Range failures such as overflow and subnormal rounding are explored separately above.
Explain the boundary without the plot.
Before opening the lesson, explain why a positive affine determinant and nonzero stored triangle area can both hold while the stored winding is wrong.
Then use RecallWeave's existing lesson importer to practice fourteen questions with explanations and transfer prompts. The learner keeps the first-answer and practice stages separate.