Pergunta

Eu estou tentando fazer um eco de uma variável contendo 1400000. assim lá está escrito: echo round(1400000); isso dá 1,4E + 6 em vez do número total. Qualquer uma idéia sobre como exibi-lo totalmente?

Foi útil?

Solução

Parece que rodada foi o problema. Mudei-lo com number_format() e isso faz o trabalho muito bem. Graças Aron e Paul para as respostas.

Outras dicas

relacionadas à sua pergunta, eu também vim através este comentário no site do PHP.

PHP muda do decimal padrão notação para notação exponencial para certos carros alegóricos "especiais". Você pode ver uma lista parcial de tais "especial" valores com o seguinte:

for( $tmp = 0, $i = 0; $i < 100; $i++ ) 
{
    $tmp += 100000;
    echo round($tmp),"\n"; 
} 

Então, se você adicionar dois carros alegóricos, acabar com um valor "especial", por exemplo 1.2E + 6, então colocar esse valor não modificada em um atualizar consulta para armazenar o valor em um coluna decimal, dizer, você provavelmente vai obter uma transação falhou, uma vez que o banco de dados vai ver "1.2E + 6", como varchar dados, e não decimal. Da mesma forma, você vai provável obter um erro de validação XSD se você colocar o valor em XML.

Eu tenho que ser honesto: este é um dos as coisas mais estranhas que já vi em qualquer idioma em mais de 20 anos de codificação, e é uma dor colossal contornar.

Parece não houve uma correção "real" ainda, mas a julgar pelos comentários no relatório de bug Paul Dixon referered para anteriormente, sua solução parece trabalho.

Possivelmente relacionado com este relatório de bug , então você pode tentar

printf("%d", $myvar);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top