Cantorum 0 Denunciar post Postado Outubro 14, 2008 Alguém lembra como fazer para converter: 000000000000010000 em 100,00 ? Se eu usar o number_format me retorna: 10.000,00. Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Outubro 14, 2008 http://us2.php.net/bindec Compartilhar este post Link para o post Compartilhar em outros sites
Cantorum 0 Denunciar post Postado Outubro 14, 2008 http://us2.php.net/bindec O problema é que o número acima não é binario mas está como string e preciso mudar para float considerando os dois últimos algarismos como decimais. 000000000000010000 em 100,00 se eu simplesmente mudar o campo da tabela para float ele me retorna 10.000.00. Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Outubro 14, 2008 Não existe relação numérica, se você converter pra inteiro vai dar 10000 mesmo. Você pode fazer uma gambiarra, dividindo por 10 e formatando as casas decimais com number_format. Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Outubro 14, 2008 se for urgente a solucao use o format e divida por 100 Compartilhar este post Link para o post Compartilhar em outros sites
Cantorum 0 Denunciar post Postado Outubro 15, 2008 se for urgente a solucao use o format e divida por 100 Mário, Eu usei o número acima apenas como exemplo. Os valore são os mais variados possíveis e não daría para simplesmente dividir por 100. Fiz uma função que resolveu meu problema e coloco-a aqui como contribuição: function valor($x){ $x = ltrim( $x, "0" );//APAGA OS ZEROS DA ESQUERDA $tamanho = strlen($x); //PEGA O NÚMERO DE CARACTERES DA STRING $tamanho = $tamanho - 2; //RETIRO OS 2 ZEROS DA CASA DECIMAL $valor = substr($x, 0, $tamanho); //SELECIONO O VALOR SEM A CASA DECIMAL $valor = number_format($valor, 2, ",", "." ); return $valor; } echo valor('0000000020000'); Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Outubro 15, 2008 Pababens pela resolucao Compartilhar este post Link para o post Compartilhar em outros sites
adonisnr 0 Denunciar post Postado Abril 17, 2009 Olá, Tive esse problema um dia desses quando tive que extrair valores numéricos dum arquivo CNAB400. Os valores estão como string e com zeros a esquerda. Bem vou mostrar a minha solução que é bem parecida com a do Cantorum, sendo que, no meu caso, a string toda é um float com duas casas decimais. function str_to_float( $str_num ){ $str = ltrim( $str_num, "0" ); $dec = substr( $str, -2 ); // Caso necessite mais que duas casas decimais, ponha aqui $int = substr( $str, 0, -2 ); // A parte inteira. Se aumentar em $dec, aumente aqui também $flt = $int . "." . $dec; return $flt; // Retorna a string '64984.98'. Mas caso queira formatar para '64.984,98', // use return number_format( $flt, 2, ",", "." ). Caso queira mudar o tipo // para float, use return (float) $flt. Na maioria dos casos você não precisa mudar // o tipo, já que o PHP faz isso automaticamente. } echo str_to_float( '000000006498498' ); Compartilhar este post Link para o post Compartilhar em outros sites