Je suis aux prises avec des problèmes liés à la résolution des problèmes. précision à virgule flottante, et n'a pas pu trouver une solution.Gestion de la précision en virgule flottante
Voici un court exemple:
aa<-c(99.93029, 0.0697122)
aa
[1] 99.9302900 0.0697122
aa[1]
99.93029
print(aa[1],digits=20)
99.930289999999999
Il semblerait que, sur le stockage du vecteur, R a converti les chiffres à quelque chose avec une représentation interne légèrement différente (oui, j'ai lu cercle 1 du " R inferno "et matériel similaire).
Comment puis-je forcer R à stocker les valeurs d'entrée exactement "telles quelles", sans modification?
Dans mon cas, mon problème est que les valeurs sont traitées de telle sorte que les petites erreurs très rapidement se développer:
aa[2]/(100-aa[1])*100
[1] 100.0032 ## Should be 100, of course !
print(aa[2]/(100-aa[1])*100,digits=20)
[1] 100.00315593171625
Je dois trouver un moyen d'obtenir ma droite normalisation.
Merci
Il y a beaucoup de PS-questions sur ce site et ailleurs, discuter de la question de la perte apparente de précision, à savoir les numéros affichés correctement (mais stockés à droite). Ici, par exemple: How to stop read.table from rounding numbers with different degrees of precision in R? Ceci est un problème distinct, car le numéro est mal stocké (mais affiché à droite).
(version R 3.2.1 (18/06/2015), win 7 x64)
Je crois que votre question ne concerne pas les tables de lecture, mais à propos de la précision numérique de R. https://stackoverflow.com/questions/24847918/extreme-numerical-values-in-floating-point-precision-in-r –