CAST

NAME

cast - Casts a value in a specific type

SYNOPSIS

(int) (double) (string) (bool)

DESCRIPTION

This function is used to change the type of a variable into another one. The "cast" of an array into a double or an integer returns the number of elements in the array. The "cast" of an array into a string returns the JSON equivalent to this array.

Casting a double to an int might cause some precision issue as seen in this example:

 

    

    amt = 64.24;

    "The amount = "; amt; "\n";

    

    amt *= 100.0;

    "multiplied by 100:="; amt;"\n";

    

    

    amt = (int)amt;

    amt;"\n";

 

Which result in 

 

The amount = 64.24

multiplied by 100:=6424

6423

 

The correct way to implement this is:

 

    amt = 64.24;

    "The amount = "; amt; "\n";

 

    amt *= 100.0;

    "multiplied by 100:="; amt;"\n";

 

    amt = round(amt);

    amt = (int)amt;

    amt;"\n";

EXAMPLES

Note: In the followings examples, the _ between the { should be removed to make it work.

        {_{a=undefined; (int) a; }} return 0
        {_{a=null; (int) a; }} return 0
        {_{a=[1,2,3]; (int) a; }} return 3
        {_{a={x:1,y:2}; (int) a; }} return 2
        {_{a=true; (int) a; }} return 1
        {_{a=false; (int) a; }} return 0
        {_{a=7.12345; (int) a; }} return 7
        {_{a='7.1'; b  = (int) a; b;}} return 7
        {_{a='7'; b  = (int) a; b;}} return 7
        {_{a=7; b  = (int) a; b;}} return 7
        {_{a=7.12345; b  = (int) a; b;}} return 7

        {_{a=undefined; (float) a; }} return 0
        {_{a=null; (float) a; }} return 0
        {_{a=[1,2,3]; (float) a; }} return 3
        {_{a={x:1,y:2}; (float) a; }} return 2
        {_{a=true; (float) a; }} return 1
        {_{a=false; (float) a; }} return 0
        {_{a=7.12345; (float) a; }} return 7.12345
        {_{a='7.1'; b  = (float) a; b;}} return 7.1
        {_{a='7'; b  = (float) a; b;}} return 7
        {_{a=7; b  = (float) a; b;}} return 7
        {_{a=7.12345; b  = (float) a; b;}} return 7.12345

        {_{a=undefined; (bool) a; }} return false
        {_{a=null; (bool) a; }} return false
        {_{a=[1,2,3]; (bool) a; }} return true
        {_{a=[]; (bool) a; }} return false
        {_{a={x:1,y:2}; (bool) a; }} return true
        {_{a={}; (bool) a; }} return false
        {_{a=true; (bool) a; }} return true
        {_{a=false; (bool) a; }} return false
        {_{a=7.12345; (bool) a; }} return true
        {_{a='7.1'; b  = (bool) a; b;}} return true
        {_{a=''; b  = (bool) a; b;}} return false
        {_{a='7'; b  = (bool) a; b;}} return true
        {_{a='0'; b  = (bool) a; b;}} return false
        {_{a=7; b  = (bool) a; b;}} return true
        {_{a=7.12345; b  = (bool) a; b;}} return true


        {_{a=undefined; (string) a; }} return undefined
        {_{a=null; (string) a; }} return
        {_{a=[1,2,3]; (string) a; }}",q(\[1,2,3\]),0);
        {_{a={x:1,y:2}; (string) a; }}",q(.*"x":1.*}),0);
        {_{a={x:1,y:2}; (string) a; }}",q(.*"y":2.*}),0);
        {_{a=true; (string) a; }} return true
        {_{a=false; (string) a; }} return false
        {_{a=7.12345; (string) a; }} return 7.12345
        {_{a='7.1'; b  = (string) a; b;}} return 7.1
        {_{a='7'; b  = (string) a; b;}} return 7
        {_{a=7; b  = (string) a; b;}} return 7
        {_{a=7.12345; b  = (string) a; b;}} return 7.12345

SEE ALSO

AUTHOR

Written by Pierre Laplante and Caroline Laplante, <laplante@sednove.com>

MODIFICATIONS

1.0 2014-09-09 21:24:14 laplante@sednove.com