Olá, pessoal
Estou enfrentando algumas limitações do python, e até já me conformei (um pouco frustrado, diga-se de passagem) que a função input não permite formatar os dados no momento de entrada, como limitar o número de casas decimais ou padronizar em um formato CPF. (se eu estiver enganado sobre isso, me corrijam, pfv)
Mas indo ao ponto, preciso converter números grandes (float para string), porém sem arredondar ou tornar em notação científica. A string resultante precisa ter exatamente os mesmos dígitos para que eu possa processar dígito por dígito. Porém, ao converter o número 4687687664615467616357.99 para string ele me retorna 4.6876876646154675e+21, o que frustra totalmente meu propósito. Já procurei solução para esse problema em várias páginas e fóruns, mas até agora ninguém soube apresentar uma solução que resolva.
Segue parte do código (alterado) para exemplificar.
Agradeço antecipadamente a quem apresentar uma solução.
Att.
john
valor = 4687687664615467616357.99
vsor_str_valor = str(valor)
print(vsor_str_valor+' foi convertido para string!')
--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/dfeefe53-ed81-451d-9a44-519ad09ad671%40googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/CA%2BqC5nyG4DCLvtNWpLvuenwGcxXNNpPRUFcFEhT05MWDB1T5Sw%40mail.gmail.com.
Olá John,Não é possível representar o valor que você deu como exemplo como um double IEE 754 de 64 bits, ele necessariamente será arredondado.Você poderia dar mais contexto sobre o que você está tentando fazer?Se for possível obter ele em sua representação de string, você pode convertê-lo em um Decimal:No qual você pode controlar o número de casas decimais necessárias para qualquer que seja o número que você precisa trabalhar.Assim você pode fazer qualquer operação necessária nele, e por fim, convertê-lo em uma string sem perda de precisão.
On Sat, Feb 8, 2020 at 4:36 PM John <contato...@hotmail.com> wrote:
--Olá, pessoal
Estou enfrentando algumas limitações do python, e até já me conformei (um pouco frustrado, diga-se de passagem) que a função input não permite formatar os dados no momento de entrada, como limitar o número de casas decimais ou padronizar em um formato CPF. (se eu estiver enganado sobre isso, me corrijam, pfv)
Mas indo ao ponto, preciso converter números grandes (float para string), porém sem arredondar ou tornar em notação científica. A string resultante precisa ter exatamente os mesmos dígitos para que eu possa processar dígito por dígito. Porém, ao converter o número 4687687664615467616357.99 para string ele me retorna 4.6876876646154675e+21, o que frustra totalmente meu propósito. Já procurei solução para esse problema em várias páginas e fóruns, mas até agora ninguém soube apresentar uma solução que resolva.
Segue parte do código (alterado) para exemplificar.
Agradeço antecipadamente a quem apresentar uma solução.
Att.
john
valor = 4687687664615467616357.99
vsor_str_valor = str(valor)
print(vsor_str_valor+' foi convertido para string!')
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
<*> Para sair deste grupo, envie um e-mail para:
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python...@googlegroups.com.
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/168e33f0-693b-48be-b1f1-1a643f2143f3%40googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/168e33f0-693b-48be-b1f1-1a643f2143f3%40googlegroups.com.
-----
Pedro Werneck
--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
<*> Para sair deste grupo, envie um e-mail para:
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.