
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

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@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@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.

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@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@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@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@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.

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@gmail.com <mailto:pjobenil@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@ufv.br <mailto:oliveirajc@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@listas.c3sl.ufpr.br <mailto:R-br@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@listas.c3sl.ufpr.br <mailto:R-br@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@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.
participantes (4)
-
Jobenil Luiz Magalhães Júnior
-
julio cesar oliveira
-
Rodrigo Coster
-
salah