March Docs

FinanceAmount

Functions

fnaddadd(a : Quantity, b : Quantity) : Result(Quantity, FinanceError.Error)#

Add quantities only when identity and precision agree.

fnatomsatoms(q : Quantity) : BigInt.BigInt#
fnformatformat(q : Quantity) : String#

Format with the asset's full precision; zero has no negative sign.

fnfrom_atomsfrom_atoms(a : FinanceAsset.Asset, units : BigInt.BigInt) : Quantity#

Construct a signed exact quantity in the asset's smallest unit.

fnnegatenegate(q : Quantity) : Quantity#

Negate an exact quantity without changing its asset.

fnparseparse(a : FinanceAsset.Asset, text : String) : Result(Quantity, FinanceError.Error)#

Parse strict decimal text. Reject excess precision; never round silently.

fnquantity_assetquantity_asset(q : Quantity) : FinanceAsset.Asset#
fnrescalerescale(q : Quantity, places : {Int | _ >= 0 && _ <= 255}, policy : FinanceRounding.Policy) : Result(Quantity, FinanceError.Error)#

Change accounting precision for the same asset using an explicit rounding policy.

fnsubsub(a : Quantity, b : Quantity) : Result(Quantity, FinanceError.Error)#

Subtract quantities, rejecting conflicting asset identities or precision.