Effacer les filtres
Effacer les filtres

Help regarding "format long"

1 vue (au cours des 30 derniers jours)
AR
AR le 26 Fév 2011
i am trying to solve a=(4:0.0002:4.20) with format long, but i am getting weird values and not accurated ones like 4.196000000000001 4.196200000000000 4.196400000000001 4.196600000000000 4.196800000000001
But it should be like this 4.196000000000000 4.196200000000000 4.196400000000000 4.196600000000000 4.196800000000000
why matlab is not giving me accurate answer and adding 0.000000000000001 at alternative figures.

Réponse acceptée

Matt Tearle
Matt Tearle le 26 Fév 2011
Welcome to the joy of round-off error. 0.0002 is not exactly representable in binary, hence adding these floating point numbers causes error at the level of machine precision. Enter eps(4) to see what machine precision is for these values.

Plus de réponses (2)

Jiro Doke
Jiro Doke le 26 Fév 2011
Take a look at this FAQ.

James Tursa
James Tursa le 26 Fév 2011
You may also find the num2strexact utility to be of some help in understanding this. e.g.,
>> num2strexact(4.196)
ans =
4.1959999999999997299937604111619293689727783203125
>> num2strexact(4.1962)
ans =
4.19620000000000015205614545266143977642059326171875
>>
You can find the num2strexact utility here:

Catégories

En savoir plus sur Introduction to Installation and Licensing dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by