# 7.5. Data Types of Arrays#

So far we have worked with arrays of integers and floats. Arrays of complex and rational types can be defined easily, and the array functions work as expected:

x = [ complex(cos(θ),sin(θ)) for θ in 2π*(0:10)/10 ]

11-element Vector{ComplexF64}:
1.0 + 0.0im
0.8090169943749475 + 0.5877852522924731im
0.30901699437494745 + 0.9510565162951535im
-0.30901699437494734 + 0.9510565162951536im
-0.8090169943749473 + 0.5877852522924732im
-1.0 + 1.2246467991473532e-16im
-0.8090169943749475 - 0.587785252292473im
-0.30901699437494756 - 0.9510565162951535im
0.30901699437494723 - 0.9510565162951536im
0.8090169943749473 - 0.5877852522924734im
1.0 - 2.4492935982947064e-16im

sum(x.^2)

0.9999999999999996 - 6.008810221214569e-16im

y = [ a//(a+1) for a = 1:10 ]

10-element Vector{Rational{Int64}}:
1//2
2//3
3//4
4//5
5//6
6//7
7//8
8//9
9//10
10//11

prod(y.^2)

1//121


## 7.5.1. Conversion#

If you wish to change the data type of your array, use Julia’s convert function. For example, suppose you wish that elements of y were floats instead of rationals.

convert(Array{Float64}, y)

10-element Vector{Float64}:
0.5
0.6666666666666666
0.75
0.8
0.8333333333333334
0.8571428571428571
0.875
0.8888888888888888
0.9
0.9090909090909091