Minha dúvida é: em relação à declaração de variável do tipo float, quando eu atribuo um valor pra essa variável é aconselhável ou obrigatório colocar um f depois do valor?
Por exemplo:
float x = 1.05; //se eu atribuir dessa forma é considerado um erro? float y = 1.05f; //dessa forma é aconselhável ou obrigatório?
Não vai compilar pois o compilador entende 1.05 como um double por padrão.
T
thingol
De modo geral: tente nunca usar “float” e sim “double”.
Como você já deve ter percebido, a linguagem põe alguns obstáculos para você usar diretamente “float”.
A única vantagem do “float” é que arrays de floats efetivamente ocupam a metade do espaço de arrays de “double”. E é por isso que são usados em certas APIs como a Java2D.
Quanto a tempo de processamento, como a parte do processador que faz cálculos trabalha diretamente com double (64 bits) ou então números de 80 bits (no caso de processadores Intel se forem usadas as instruções de “coprocessador aritmético” que são implementadas dentro do processador desde o 486) normalmente é exatamente o mesmo para float e double, então não vale a pena normalmente usar float só para gastar menos tempo.
Mesmo uma variável “float” sozinha pode acabar ocupando exatamente o mesmo espaço de uma variável “double”, devido a circustâncias como “alignment”. Então não vale a pena usar float em 99,95% dos casos.
marcosvidolin
davidbuzatto:
float x = 1.05;
Não vai compilar pois o compilador entende 1.05 como um double por padrão.
Como o colega postou, essa declaração gera erro de compilação:
se você está declarando um float deve usar o “f” ou “F” para indicar que esta atribuindo um valor do tipo float, caso contrario o java assume esses valores como sendo do tipo double por padrão.
Aqui está o motivo pelo qual o erro é gerado:
float: 4 Bytes (32 bits)
double: 8 Bytes (64 bits)