fmt-0.6.1.2: A new formatting library

Fmt.Internal.Numeric

Synopsis

Documentation

>>> import Fmt


octF :: Integral a => a -> Builder Source #

Format a number as octal:

>>> listF' octF [7,8,9,10]
"[7, 10, 11, 12]"


binF :: Integral a => a -> Builder Source #

Format a number as binary:

>>> listF' binF [7,8,9,10]
"[111, 1000, 1001, 1010]"


baseF :: (HasCallStack, Integral a) => Int -> a -> Builder Source #

Format a number in arbitrary base (up to 36):

>>> baseF 3 10000
"111201101"
>>> baseF 7 10000
"41104"
>>> baseF 36 10000
"7ps"


floatF :: Real a => a -> Builder Source #

Format a floating-point number:

>>> floatF 3.1415
"3.1415"


Numbers smaller than 1e-6 or bigger-or-equal to 1e21 will be displayed using scientific notation:

>>> listF' floatF [1e-6,9e-7]
"[0.000001, 9.0e-7]"
>>> listF' floatF [9e20,1e21]
"[900000000000000000000.0, 1.0e21]"


exptF :: Real a => Int -> a -> Builder Source #

Format a floating-point number using scientific notation, with the given amount of decimal places.

>>> listF' (exptF 5) [pi,0.1,10]
"[3.14159e0, 1.00000e-1, 1.00000e1]"


fixedF :: Real a => Int -> a -> Builder Source #

Format a floating-point number without scientific notation:

>>> listF' (fixedF 5) [pi,0.1,10]
"[3.14159, 0.10000, 10.00000]"


commaizeF :: (Buildable a, Integral a) => a -> Builder Source #

Break digits in a number:

>>> commaizeF 15830000
"15,830,000"


ordinalF :: (Buildable a, Integral a) => a -> Builder Source #

Add an ordinal suffix to a number:

>>> ordinalF 15
"15th"
>>> ordinalF 22
"22nd"


groupInt :: (Buildable a, Integral a) => Int -> Char -> a -> Builder Source #

atBase :: Integral a => Int -> a -> String Source #

showSigned' :: Real a => (a -> ShowS) -> a -> ShowS Source #