Unexpected text output

Certified Senior Developer

Can someone explain what's going on here? 

If I try to get the output for the following string: 

fn!char(65020) & " 21,245.00"

the result I get is: 

﷼ 21,245.00

however if I try to get the output for the following:
fn!char(65020) & "ABCD"
the result I get is: 
﷼ABCD
Can someone explain to me why it's essentially the same expression, but the symbol is on the right with the number and on the left with the letters?

  Discussion posts and replies are publicly visible

Parents
  • Hi   it was interesting for me. I did some experiment on this, observations are as follows.

    There are two governing factors causing this behavior. 1. Currency Sign and 2. Appian Function using for concatenation

    fn!char(65020) is displays the Arabic Currency Sign (Riyal Sign) using the unicode 65020 (which is for decimal).

    Since it was the sign for currency, it look for the number and displays according to the Arabic syntax i.e, from right to left

    Example:

    fn!char(65020) & " 21,245.00" returns "﷼ 21,245.00"
    "21,245.00 "& fn!char(65020)  returns "﷼ 21,245.00"
    concat(fn!char(65020)," ",5678 ) returns "﷼ 21245"

     

    In case of the alphanumeric, if the number is first(left to right) followed by text, it picks the number follows Arabic syntax i.e, from right to left and appends the remaining alphabets.

    Example: 

    concat(fn!char(65020)," 299dast") returns "﷼ 299dast"
    fn!char(65020) & "299dast" returns "﷼ 299dast"

    In case of the alphanumeric, if  alphabets are first(left to right) followed by number, it will treat the alphanumeric as text not as number. S0 it will display in the same format.

    Example:

    fn!char(65020) & "dast456" returns "﷼dast456"
    concat("dast456",fn!char(65020) ) returns "dast456﷼"
    concat(fn!char(65020)," dast456" ) returns "﷼ dast456"

    concat("456dast",fn!char(65020) ) returns "456dast﷼"

    Note: Thought the aphanumeric starts with number, due to concat() and the order, it returns "456dast﷼"

     

    Above observations can be noticed with any language specific currency sign.

    For example take the INR (India's currency sign). Syntax starts from left to right.

    fn!char(8377)&" 123" returns "₹ 123"
    fn!char(8377)&" 123dast" returns "₹ 123dast"
    fn!char(8377) & " 21,245.00" returns "₹ 21,245.00"
    "21,245.00 "& fn!char(8377) returns "21,245.00 ₹"
    concat(fn!char(8377)," ",21245.00 ) returns "₹ 21245"
    concat(fn!char(8377)," 299dast") returns "₹ 299dast"
    fn!char(8377) & "299dast" returns "₹299dast"

    fn!char(8377) & "dast456" returns "₹dast456"
    concat("dast456",fn!char(8377) ) returns "dast456₹"
    concat(fn!char(8377)," dast456" ) returns "₹ dast456"

Reply
  • Hi   it was interesting for me. I did some experiment on this, observations are as follows.

    There are two governing factors causing this behavior. 1. Currency Sign and 2. Appian Function using for concatenation

    fn!char(65020) is displays the Arabic Currency Sign (Riyal Sign) using the unicode 65020 (which is for decimal).

    Since it was the sign for currency, it look for the number and displays according to the Arabic syntax i.e, from right to left

    Example:

    fn!char(65020) & " 21,245.00" returns "﷼ 21,245.00"
    "21,245.00 "& fn!char(65020)  returns "﷼ 21,245.00"
    concat(fn!char(65020)," ",5678 ) returns "﷼ 21245"

     

    In case of the alphanumeric, if the number is first(left to right) followed by text, it picks the number follows Arabic syntax i.e, from right to left and appends the remaining alphabets.

    Example: 

    concat(fn!char(65020)," 299dast") returns "﷼ 299dast"
    fn!char(65020) & "299dast" returns "﷼ 299dast"

    In case of the alphanumeric, if  alphabets are first(left to right) followed by number, it will treat the alphanumeric as text not as number. S0 it will display in the same format.

    Example:

    fn!char(65020) & "dast456" returns "﷼dast456"
    concat("dast456",fn!char(65020) ) returns "dast456﷼"
    concat(fn!char(65020)," dast456" ) returns "﷼ dast456"

    concat("456dast",fn!char(65020) ) returns "456dast﷼"

    Note: Thought the aphanumeric starts with number, due to concat() and the order, it returns "456dast﷼"

     

    Above observations can be noticed with any language specific currency sign.

    For example take the INR (India's currency sign). Syntax starts from left to right.

    fn!char(8377)&" 123" returns "₹ 123"
    fn!char(8377)&" 123dast" returns "₹ 123dast"
    fn!char(8377) & " 21,245.00" returns "₹ 21,245.00"
    "21,245.00 "& fn!char(8377) returns "21,245.00 ₹"
    concat(fn!char(8377)," ",21245.00 ) returns "₹ 21245"
    concat(fn!char(8377)," 299dast") returns "₹ 299dast"
    fn!char(8377) & "299dast" returns "₹299dast"

    fn!char(8377) & "dast456" returns "₹dast456"
    concat("dast456",fn!char(8377) ) returns "dast456₹"
    concat(fn!char(8377)," dast456" ) returns "₹ dast456"

Children
No Data