Spread WPF Documentation > Formula Reference > Formula Overview > Functions in a Formula > Complex Numbers |
Many of the engineering functions involve complex numbers. A complex number consists of two parts, a real part and an imaginary part. Consider a complex number as being a point (x,y) in a plane. The real number is similar to a point (x,0) on the x-axis of the plane. Note that real numbers are a subset of complex numbers with zero for the coefficient of the imaginary part.
There is not a complex number data type. Instead, complex numbers are represented using strings of the form "x+yi" where x and y are real numbers and x is the real part and yi is the imaginary part. For example:
"2+3i"
"1.23E4+5.67E8i"
Note that if either the real part or the imaginary part is zero then the zero part can be optionally omitted from the text representation. For example:
"3" is equivalent to "3+0i"
"4i" is equivalent to "0+4i"
Since real numbers are a subset of complex numbers, a real number can be used in place of a string of the form "x+yi". For example:
3 is equivalent to "3+0i"
The functions that return a complex number return a string of the form "x+yi". For example:
COMPLEX(3,5) returns "3+5i"
The functions that accept a complex number can accept either a number or a string of the form "x+yi". For example:
IMSUM("1+2i", "3+4i") returns "4+6i"
IMSUM(1, 3) returns "4"
When a string cannot be converted to a number Spread returns a #VALUE error. For example:
COS("abc") returns #VALUE!
IMCOS("abc") returns #VALUE!
Spread allows either suffix "j" or the suffix "i" to denote the imaginary part. For example:
"3+4j" is equivalent to "3+4i"
Spread allows mixed suffixes in the a given formula and always returns the "i" suffix. For example:
IMSUM("1+2i","3+4i") returns "4+6i"
IMSUM("1+2j","3+4j") returns "4+6i"
IMSUM("1+2i","3+4j") returns "4+6i"
Spread does not allow spaces before the real part or before the imaginary part. For example:
IMABS("3+4i") returns 5
IMABS(" 3+4i") returns #VALUE!
IMABS("3 +4i") returns #VALUE!
IMABS("3+4i ") returns #VALUE!