Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Coin

Converrter de Notação Cientifica para Decimal simples

Recommended Posts

Sempre que coloco um numero grande numa variavel, e mando imprimir essa variavel (echo), o PHP imprime o numero como notação cientifica.Preciso muito que o PHP o imprima como um numero decimal simples, normalexemplo se eu digo que:

$var = 265895468215689;echo $var;

então eu quero que apareca na tela o numero 265895468215689 e não uma notação cientifica...alguem pode me ajudar? preciso muitoooo disso.desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz :(

 

Tu não pode colocar assim?

 

<?php$var = "265895468215689";echo $var;?>

Dae funciona mas o número passa a ser string.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz :(

 

Tu não pode colocar assim?

 

<?php$var = "265895468215689";echo $var;?>
Dae funciona mas o número passa a ser string.
desculpa, não expliquei tudo...

 

na realidade é assim que eu defino o valor da variavel:

 

$randon1 = rand(1,1000);$resultadooo = $_COOKIE['code']-$randon1;
daew eu quero que o a $resultadooo não seja impressa como notação decimal na tela.

 

______________________________

EDITADO

 

vale lembrar que já tentei fazer isto, mas como eu esperava não deu certo:

$resultadooo = "$resultadooo";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize a função settype do PHP.

 

settype($resultadooo , "string");
fiz isso, mas continuou igual:

<input type='hidden' name='hidden_resultado1' value='5.16498464585E+021'>

O numero continua aparecendo em notação cientifica =/ preciso dele normal ;\

 

 

------------------

EDITADO

 

lembrando que usei o código assim:

 

$randon1 = rand(1,1000);$resultadooo = $_COOKIE['code']-$randon1;settype($resultadooo , "string");$content .= "Subtraia o valor do código por <strong>$randon1</strong> e digite o resultado no campo abaixo:<br /><br /><br /><form method='post' action='usar_tickets.php'><input type='hidden' name='form_preenchido' value='1'><input type='hidden' name='form_preenchido2' value='1'><input type='hidden' name='hidden_resultado1' value='".$resultadooo."'><input type='text' name='text_resultado1'><input type='submit' value='Enviar'></form>";
e no fim do código eu dou um echo na $content...

Compartilhar este post


Link para o post
Compartilhar em outros sites

settype($resultadooo , "int");
testei e continou com problema.

 

nesse caso a "$_COOKIE['code']" era "5606934489302388992" e a "$randon1" era "535"

 

lembrando que "$resulatadooo" é:

$resultadooo = $_COOKIE['code']-$randon1;
Ou seja, seria "5606934489302388992" menos "535"

 

e olha o valor que ficou na variavel resultado:

<input type='hidden' name='hidden_resultado1' value='[color="#FF0000"]297880576[/color]'>
Só para conferir olhe como usei o código desta vez:

$randon1 = rand(1,1000);$resultadooo = $_COOKIE['code']-$randon1;settype($resultadooo , "int");
Deus do céu, quanta complicação por algo tão besta... quem teve a maldita ideia de por esse sistema de notação cientifica como obrigação para numeros grandes no PHP? isso está me atrapalhando completamente, pq o código que o cara digita, que seria a subtração do $_COOKIE['code'] pela -$randon1, nunca baterá com o código que é colocado no input hidden, pois o do hidden está em notação cientifica, dai sempre vai dar erro, pois o que o cara digitou é diferente do que está na hidden =/

 

não sei mais como resolver isso, espero que você ou outra pessoa ainda tenha uma carta na manga =\

Compartilhar este post


Link para o post
Compartilhar em outros sites
http://www.php.net/manual/pt_BR/language.types.integer.phpNo próprio manual fala:

Se você especifica um número além dos limites do tipo inteiro, ele será interpretado como um ponto flutuante. Assim, se você realizar uma operação que resulte em um número além dos limites do tipo inteiro, um ponto flutuante será retornado também.

...portanto você não vai conseguir usar essas operações com números grandes dentro do PHP.Uma alternativa é você usar POG (rs). Por exemplo, a operação em PHP:
print (5606934489302388992/2);
...resulta em:

2.80346724465E+018

Mas...se você fizer usando mysql, funciona tudo certinho:
mysql_connect("localhost","usuario","senha");$v = mysql_query("SELECT (5606934489302388992/2) AS num");print @mysql_result($v,0,"num");
...aí é só usar a criatividade. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://www.php.net/manual/pt_BR/language.types.integer.phpNo próprio manual fala:

Se você especifica um número além dos limites do tipo inteiro, ele será interpretado como um ponto flutuante. Assim, se você realizar uma operação que resulte em um número além dos limites do tipo inteiro, um ponto flutuante será retornado também.

...portanto você não vai conseguir usar essas operações com números grandes dentro do PHP.Uma alternativa é você usar POG (rs). Por exemplo, a operação em PHP:
#@?$%~ velho, que coisa mais tosca =/eu particularmente achei essa limitação do PHP horrivel e atrapalha muita coisa, tive que mudar completamente meu sistema para deixa-lo apto a isso, e sei que ainda terei muito problema com isso =/nota zero pro PHP nesse aspecto, espero que isso mude ;/agradeço a ajuda de tudos, vlw por td.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hahahah...mais um Usuário deste fantastico metodo POG::::

Aprendi algumas técnicas POG, já posso me considerar um supreme advanced programer gambiarreitor. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/yay.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

#@?$%~ velho, que coisa mais tosca =/eu particularmente achei essa limitação do PHP horrivel e atrapalha muita coisa, tive que mudar completamente meu sistema para deixa-lo apto a isso, e sei que ainda terei muito problema com isso =/nota zero pro PHP nesse aspecto, espero que isso mude ;/agradeço a ajuda de tudos, vlw por td.

Resta saber se essa é uma deficiência do PHP mesmo, ou se é herdada da linguagem mãe (C, C++). Aproveitando, vou ver se consigo criar uma classe pra realizar essas operações com números grandes, qualquer coisa eu posto no laboratório de scripts. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

#@?$%~ velho, que coisa mais tosca =/eu particularmente achei essa limitação do PHP horrivel e atrapalha muita coisa, tive que mudar completamente meu sistema para deixa-lo apto a isso, e sei que ainda terei muito problema com isso =/nota zero pro PHP nesse aspecto, espero que isso mude ;/agradeço a ajuda de tudos, vlw por td.

Resta saber se essa é uma deficiência do PHP mesmo, ou se é herdada da linguagem mãe (C, C++). Aproveitando, vou ver se consigo criar uma classe pra realizar essas operações com números grandes, qualquer coisa eu posto no laboratório de scripts. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
homi, se tu conseguir isso me manda um e-mail me avisando pelo amor de Deus, sou tou acompanhando esse topico pq tou com essa aba aberta a dias no meu firefox ;\meu e-mail é:coin@hotmu.com.bro MSN é o mesmo do e-mail, se tu conseguir algo do genero me avisa plzzzFLWz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para não utilizar o mysql, sugiro mais uma gambiarra:

1 - Separe os últimos 5 caracteres

2 - Execute a subtração pelo número randômico

3 - Junte as duas "strings"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.