format

fun <T : Number, Comparable<T>> T.format(nDecimal: Int = 2, isCurrency: Boolean = false): String

Formats a number to a string with specified decimal places and thousands separators.

Handles special values (NaN, Infinity) and provides locale-aware formatting with configurable precision. When used for currency, enforces 2 decimal places and appends the currency symbol.

Examples

123.4567.format()              // "123.46" (default 2 decimals)
123.4f.format(1) // "123.4"
123.0.format() // "123" (trailing zeros removed)
1234567.89.format() // "1,234,567.89"
1234.09.format(isCurrency = true) // "1,234.09$"
Double.NaN.format() // "NaN"
Float.POSITIVE_INFINITY.format() // "∞"

Return

Formatted string with thousands separators and appropriate decimal precision.

Parameters

nDecimal

Number of decimal places (default: 2). Ignored when isCurrency is true.

isCurrency

If true, formats as currency with 2 decimals and appends currency symbol.