Basic.RomanNumerals

Roman numeral formatting.

Syntax

DaxLib.FormatString.Basic.RomanNumerals ( )

Definition

DAX
// Convert numbers to Roman numerals
// Returns Roman numerals like "I", "II", "III", "IV", "V", "X", "L", "C", "M"
() =>
    VAR _Num = MAX( 1, MIN( 3999, ABS( SELECTEDMEASURE () ) ) )

    VAR _Thousands = INT( _Num / 1000 )
    VAR _Hundreds = INT( MOD( _Num, 1000 ) / 100 )
    VAR _Tens = INT( MOD( _Num, 100 ) / 10 )
    VAR _Ones = MOD( _Num, 10 )

    VAR _ThousandsRoman = REPT( "M", _Thousands )

    VAR _HundredsRoman =
        SWITCH ( _Hundreds, 1, "C", 2, "CC", 3, "CCC", 4, "CD", 5, "D", 6, "DC", 7, "DCC", 8, "DCCC", 9, "CM", "" )

    VAR _TensRoman =
        SWITCH ( _Tens, 1, "X", 2, "XX", 3, "XXX", 4, "XL", 5, "L", 6, "LX", 7, "LXX", 8, "LXXX", 9, "XC", "" )

    VAR _OnesRoman =
        SWITCH ( _Ones, 1, "I", 2, "II", 3, "III", 4, "IV", 5, "V", 6, "VI", 7, "VII", 8, "VIII", 9, "IX", "" )

    VAR _FormatString =
        DaxLib.FormatString.Component.MakeStringSafe (
            _ThousandsRoman &
            _HundredsRoman &
            _TensRoman &
            _OnesRoman
        )

    RETURN
        _FormatString

Parameters

This function takes no parameters.

Example

DaxLib.FormatString.Basic.RomanNumerals ()

Use this function in a measure's formatStringDefinition to display numbers as Roman numerals.

Related Functions