Loading chain data
Wei, gwei and ether, converted with integer math so an 18 decimal value survives the round trip intact. Plus hex and decimal for reading raw calldata and RPC output.
Every conversion runs on integers. An 18 decimal value carries more significant digits than a double can hold, so nothing here is rounded and nothing is approximate.
Unsigned only. Negative decimals have no unsigned hex form, so they are rejected rather than quietly wrapped into two's complement.
Working through calldata instead? The input data decoder splits a transaction payload into its method id and arguments.