Does sin() have an error?

From the command line: >> 6*pi
ans =
18.8496
>> sin(ans)
ans =
-7.3479e-16
Really? Is that a rounding error? Is there a way to get the correct value?

 Réponse acceptée

Matt Fig
Matt Fig le 24 Oct 2012
Modifié(e) : Matt Fig le 24 Oct 2012

1 vote

That is the correct value for floating point arithmetic.
sin(pi) % Same as your example.
If you want to get the exact value, use the symbolic toolbox.
double(vpa('sin(pi)'))

1 commentaire

Patrick Kelley
Patrick Kelley le 24 Oct 2012
Yeah, I said rounding error when I meant precision error. Good old floating point binary format... I haven't used the symbolic toolbox much but I'll give it another look. Thanks for the quick answer.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by