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
- Basic.Ordinals - Ordinal number formatting (1st, 2nd, 3rd)
- Basic.Numbers - Standard number formatting
- Basic.Scientific - Scientific notation formatting