[R-br] Casas Decimais
salah
salah3.1416 em gmail.com
Sexta Abril 22 15:14:26 BRT 2016
Olá
Como os colegas já colocaram a conversão do número binário para um
número real não é trivial.
Se você pretende trabalhar com alta precisão numérica você precisa
estudar o deus da informática - ponto flutuante - (/floating point)./
sugiro a leitura:
https://en.wikipedia.org/wiki/Floating_point
https://pt.wikipedia.org/wiki/Ponto_flutuante
http://www.burns-stat.com/pages/Tutor/R_inferno.pdf
O R sempre trabalha com o 22 dígitos, a função options(digits = )
controla o número de dígitos que será visualizado.
A precisão está em 16 dígitos
Verifique:
options(digits = 22)
#options(digits = 16)
(x1 = 10^-324)
(x2 = 10^-323)
(y1 = 10^+308)
(y2 = 10^+309)
(n17 = 0.00000000000000001)
(n16 = 1.0000000000000001)
(n15 = 1.000000000000001)
(n14 = 1.00000000000001)
(n13 = 1.0000000000001)
(n12 = 1.000000000001)
(n11 = 1.00000000001)
(n10 = 1.0000000001)
(n09 = 1.000000001)
(n08 = 1.00000001)
(n07 = 1.0000001)
(n06 = 1.000001)
(n05 = 1.00001)
(n04 = 1.0001)
(n03 = 1.001)
(n02 = 1.01)
(n01 = 1.1)
(n00 = 1)
n16 + n17
n15 + n16
n14 + n15
(n14 + n15) == 2.00000000000001110223
(n14 + n15) == 2.0000000000000111
(n14 + n15) == 2.000000000000011
(n14 + n15) == 2.00000000000001
0 == n17
1 == n16
1 == n15
.1
.2
.1 + .2
.3
.1 + .2 == .3
bons estudos!
Em 22/04/2016 08:19, Rodrigo Coster escreveu:
> Contribuindo com a resposta do Jobenil, isso acontece porque a
> representação do teu número em binário é uma dizima periódica (agora
> não tenho certeza se é só dizima ou dizima periódica) - isso é: tem
> infinitas casas decimais. Por não ter como armazenar as infinitas
> casas, ele é arredondado e por isso esse 'resíduo'. Embora parece algo
> que possa ser ignorado, devemos nos preocupar com esses casos, como
> mostra o exemplo:
>
> > .1 + .2
> [1] 0.3
> > .1 + .2 == .3
> [1] FALSE
>
>
>
> 2016-04-22 8:11 GMT-03:00 Jobenil Luiz Magalhães Júnior
> <pjobenil em gmail.com <mailto:pjobenil em gmail.com>>:
>
> Bom dia Júlio,
> Acho que é devido ao processo de conversão interna de decimal para
> binário e vice versa. Como você exige que a representação dos
> números tenham 22 dígitos na reconversão de P para decimal ele
> retorna essa precisão.
> Teste outro número por exemplo 665.5, penso que não encontrará
> este problema pois sua representava binária será exata.
>
> Atenciosamente
> Jobenil Junior
>
>
> Enviado do meu iPad
>
> > Em 21 de abr de 2016, às 19:35, julio cesar oliveira
> <oliveirajc em ufv.br <mailto:oliveirajc em ufv.br>> escreveu:
> >
> > Colegas,
> >
> > Sou novato no R, e por isso gostaria da ajuda para esclarecer
> algumas dúvidas.
> >
> > Preciso que os cálculos sejam realizados com máxima precisão em
> relação ao número de casas decimais. Por isso tenho a seguinte dúvida:
> >
> > 1) Como configurar as casas decimais no R ?
> >
> > estou usando o comando options(digits=22) para apresentar os
> dados com 22 casas. Além dele posso trabalhar com o pacote (Rmpfr)
> >
> > exemplo
> >
> > > mpfr(665.598,128)
> > 1 'mpfr' number of precision 128 bits
> > [1] 665.5979999999999563442543148994445800781
> >
> > 2) por que aparece um resíduo? por exemplo
> >
> > p<- 665.598
> > > p
> > [1] 665.5979999999999563443
> >
> > Grato
> >
> > julio
> > _______________________________________________
> > R-br mailing list
> > R-br em listas.c3sl.ufpr.br <mailto:R-br em listas.c3sl.ufpr.br>
> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e
> forneça código mínimo reproduzível.
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br <mailto:R-br em listas.c3sl.ufpr.br>
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e
> fornea cdigo mnimo reproduzvel.
>
>
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160422/de5555f0/attachment.html>
Mais detalhes sobre a lista de discussão R-br