Simple angle calculation coming out wrong...?

I have a simple piece of code to take the angle of an object and move it at a vector based on that angle. Problem is, that is comes out at the wrong vector so some reason.

Code is:

    void FireBullet() {
        delayBullet = 0;
        var bullet = (GameObject)Instantiate(bulletPrefab,
            this.GetComponent<Transform>().position,
            bulletPrefab.GetComponent<Transform>().rotation
            );
        Vector3 angles = bullet.GetComponent<Transform>().eulerAngles;
        float rad = angles.z * Mathf.Deg2Rad;
        Vector2 velocity;
        velocity.x = Mathf.Cos(angles.z);
        velocity.y = Mathf.Sin(angles.z);
        bullet.GetComponent<Rigidbody2D>().AddForce(velocity * bulletSpeed);
    }

Having the z angle of my bulletPrefab set to 90.0 degrees, ends up firing the projectile at about 110.0 degrees instead.

Thanks to everyone who came rushing out to help.

The solution was changing
velocity.x = Mathf.Cos(angles.z);
to
velocity.x = Mathf.Cos(rad);

Trigonometry is almost always done in radians and not degrees.

Of course some libraries may slip this up at times for stupid reasons.

Of course, documentation usually tells you: