Variable modes

In classic mode, variables hold strings or integers, and semi-automatic decisions about variable type can lead to unexpected results (see table below).
Assigning 1.234 directly or through calculation produces different outcomes. {@l_var:1.234} stores "1.234' as a string, while {@l_var:#1 + 0.234#} saves "1' as an integer. The plugin checks if direct assignment can be interpreted as an integer; if so, it stores it as such.
In extended mode, variables can store strings, integers, or floating-point values. Assigning 1.234 directly or by calculation stores a float, while quoted values are stored as strings. Calculation outputs can be strings or numbers, depending on the functions. Numeric results are stored as integers or floats based on decimal presence. To be recognized as a floating-point value, it must be defined using a decimal point, regardless of the decimal sign commonly used in your country.

Value Classic mode Extended mode
{@l_var:102} 102 (integer) 102 (integer)
{@l_var:"102"} 102 (string) 102 (string)
{@l_var:#102#} 102 (integer) 102 (integer)
{@l_var:#"102"#} 102 (integer) 102 (string)
{@l_var:102.456} 102.456 (string) 102.456 (floating-point)
{@l_var:"102.456"} 102.456 (string) 102.456 (string)
{@l_var:#102.456#} 102 (integer) 102.456 (floating-point)
{@l_var:#"102.456"#} 102.456 (string) or
102 (integer)
depending on the decimal sign in your country
102.456 (string)
{@l_var:#INT(102.456)#} 102 (integer) 102 (integer)
{@l_var:#102 + 102#} 204 (integer) 204 (integer)
{@l_var:#"102" + "102"#} 102102 (integer) 102102 (string)
{@l_var:#"Hello" + 102#} Hello102 (string)
Any assignment with non-numeric characters results in a string.
{@l_var:#MID("102", 2, 1)#} 0 (integer) 0 (string)
{@l_var:#FP(102)#} 4.1: N/A
4.2: 102 (integer)
102 (floating-point)
{@l_var:#DECIMALS(102, 2, true)#} 4.1: N/A
4.2: 102 (integer)
102.00 (floating-point)