Galera a vai a pergunta sobre atribuição.
A seguinte atribuição é válida ?
float x = 324e7;
Qual é o valor de e neste número ? Eu sei q é uma constante mas quanto ela vale ?
Galera a vai a pergunta sobre atribuição.
A seguinte atribuição é válida ?
float x = 324e7;
Qual é o valor de e neste número ? Eu sei q é uma constante mas quanto ela vale ?
Esse tipo de questão não cai na prova de certificação.
Não sei se cai, mas que eu vi no programa simulador do livro da Kathya Sierra eu prefiro estudar.
E também vi em diversas perguntas no site do dan.
Ats Raphael.
raphael eh o seguinte…fazer isso:
float x = 324e7;
resulta em um erro de compilação.
assim:
float x = 324e7f;
funciona (isso é compila sem problemas), o e7 significa que o numero- 324 aqui no caso acima- deve ser multiplicado por 10… 7 vezes
algo assim seria o mesmo que atribuir 3000 ao y:
float y = 3e3f;
3 vezes 10 3 vezes…
sacow ?
PS: escrever 3e3f eh o mesmo que escrever 3E3f, este é um dos poucos casos em que java não diferencia maiusculas de minusculas :!:
Valeu brother.
então quer dizer que
float x= 3e3f;
é igual a: (3 x 10) = 30 x 10 = 300 x 10 = 3000
mas nesta atribuição o f no fim é opcional.
Flw, e obrigadão.
O F no final que alias pode ser tanto maiusculo quanto minusculo assim como o E não eh opcional.
Não tenho certeza mas acho que eh pq quando colocamos o e (ou E) no literal de inteiro a maquina virtual o “considera” como um literal double. Porque se ele continuasse como um literal inteiro poderia ser atribuido diretamente a um float pois ambos tem o mesmo tamanho (32 bits).
[quote=Java Vinicius Machine]raphael eh o seguinte…fazer isso:
float x = 324e7;
resulta em um erro de compilação.
assim:
float x = 324e7f;
funciona (isso é compila sem problemas), o e7 significa que o numero- 324 aqui no caso acima- deve ser multiplicado por 10… 7 vezes
algo assim seria o mesmo que atribuir 3000 ao y:
float y = 3e3f;
3 vezes 10 3 vezes…
sacow ?
PS: escrever 3e3f eh o mesmo que escrever 3E3f, este é um dos poucos casos em que java não diferencia maiusculas de minusculas :!: [/quote]
É como o Vinícius falou! É assim mesmo! Quem conhece C sabe disso!
Por falar nisso, esse F que é colocado nas constantes, para identificar que é uma constante FLOAT, é o ÚNICO lugar que Java não é CASE-SENSITIVE, assim:
long l = 100l OU long l = 100L
float f = 100f OU float f = 100F
double d = 100d OU double d = 100D
Assim também com constantes hexadecimais:
int i = 0xcafe; OU
int i = 0Xcafe; OU
int i = 0xCafe; OU
int i = 0xcAfe; OU
int i = 0XCAFE; TUDO A MESMA COISA!
E também com constantes em notação científica:
float f = 10e3f OU
float f = 10e3F OU
float f = 10E3f OU
float f = 10E3F OU
float f = 10E-3F // Com o 3 negativo!
[]'s Tjmm.
[]'s Tjmm.
Então a regra é o seguinte utilizou E o número vira double ? Mesmo q o número não seja um número ponto flutuante ?
[quote=raphael_nasci]Então a regra é o seguinte utilizou E o número vira double ? Mesmo q o número não seja um número ponto flutuante ?
[/quote]
Não…sempre que USAR o “E” ou “e”, o número será de ponto flutuante!
Os número em notação científica são REAIS (ponto flutuante). Não tem saída! Se aparecer algum número com o “E” ou “e”, ele será DOUBLE (caso não termine com f ou F).
[]'s Tjmm.