Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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
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!
Olá,
Não pesquisei direito, mas uma das opções é você converter para string com sprintf,
exemplo:
$json = '{
"numberData" : {
"number" : 14231452513116306
}