1
resposta

Conversão Long Float

Como posso armazenar um tipo que precisa de 4 bytes em outra que somente ocupa 4 bytes, sem que haja perda de informação?

Ok... o MaxValue do float é maior que o MaxValue do long, mas por que o long ocupa 8 bytes e consegue armazenar um range menor?

Console.WriteLine(sizeof(long)); // 8
Console.WriteLine(sizeof(float)); // 4

var mFloat = float.MaxValue; // 3.40282347E+38F
long teste = long.MaxValue; // 9223372036854775807
float teste2 = teste;
1 resposta

Tudo depende da precisão que você quer trabalhar.

O float e o long são bem distintos, o float guarda números decimais usando um ponto flutuante, já o long só guarda números inteiros.

O float não guarda todos os dígitos na memória mas sim arredonda usando notação científica por isso consegue atingir um valor maior que o long.