KMRodrigo 1 Denunciar post Postado Fevereiro 5, 2015 Boa tarde pessoal, estou com um problema: recebo um json de uma api q retorna um número como: 28175938272847293 o retorno chega correto para mim porém quando uso o json_decode para converter o json o número se transforma em 2.817593827+8E1 e isso quebra meu sistema. Sabem como posso usar o decode sem quebrar o número? exemplo { "numberData" : { "number" : 14231452513116306 } } usando o json decode fica 1.4231452513116E+16 Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Danilo 43 Denunciar post Postado Fevereiro 5, 2015 Olá, Não pesquisei direito, mas uma das opções é você converter para string com sprintf, exemplo: $json = '{ "numberData" : { "number" : 14231452513116306 } }'; $result = json_decode($json, true); $number = sprintf('%.0f', $result['numberData']['number']); var_dump($number); Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 5, 2015 Isso é notação científica. Você pode alterar o valor da diretiva "precision", aumentando o valor, para que o número não seja transformado em notação científica. O que você fará com esse número? Precisa realizar operações matemáticas? Se não precisar, pode converter para string, como sugerido pelo Anderson Danilo. Mas se precisar, existe o risco de overflow. Pra evitar isso, veja a biblioteca GMP, para cálculos com números de precisão arbitrária Compartilhar este post Link para o post Compartilhar em outros sites
KMRodrigo 1 Denunciar post Postado Fevereiro 5, 2015 Muito obrigado Anderson pela ajuda e muito obrigado Beraldo pela explicação Não irei fazer nenhum operação matemática com ele a solução string correu bem! Valeu! Compartilhar este post Link para o post Compartilhar em outros sites