HOWTO · Csharp
Converter Float para Int em C#
Existem 4 métodos principais que podem ser usados para converter um float em int em C#, o método explícito de typecasting, a função Math.Ceiling(), a função Math.Floor() e a função Math.Round().
Nesta página
Para converter um float em int em C#, escolha a operação conforme o tratamento desejado para a parte fracionária: uma conversão direta trunca em direção a zero, Math.Ceiling() arredonda em direção ao infinito positivo, Math.Floor() arredonda em direção ao infinito negativo e Math.Round() seleciona o inteiro mais próximo. Cada conversão produz um int; por isso, um valor fracionário pode mudar.
Converter float em int com conversão explícita de tipo em C#
Uma conversão direta é a opção mais simples quando você quer descartar a parte fracionária. Ela trunca em direção a zero, fazendo com que valores positivos e negativos se aproximem de zero, em vez de se aproximarem do infinito negativo. O programa completo a seguir converte valores dos dois sinais:
using System;
class Program
{
static void Main()
{
float positive = 10.9f;
float negative = -10.9f;
int positiveResult = (int)positive;
int negativeResult = (int)negative;
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
A conversão remove a parte fracionária e mantém a direção em direção a zero: por exemplo, 10.9f se torna 10, e -10.9f se torna -10. As variáveis de resultado são do tipo int. Este exemplo é fornecido como código e não foi executado nesta etapa de redação.
Converter float em int com a função Math.Ceiling() em C#
Use Math.Ceiling() quando o valor deve ser arredondado em direção ao infinito positivo. O método retorna um double; portanto, converta esse resultado para int após chamá-lo. Para um valor negativo, o arredondamento em direção ao infinito positivo o aproxima de zero:
using System;
class Program
{
static void Main()
{
float positive = 10.2f;
float negative = -10.2f;
int positiveResult = (int)Math.Ceiling(positive);
int negativeResult = (int)Math.Ceiling(negative);
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
Neste exemplo, Math.Ceiling() arredonda cada valor para cima na reta numérica antes da conversão, que armazena o número inteiro resultante como int. Por exemplo, o valor positivo se torna 11, enquanto o negativo se torna -10. Este exemplo não foi executado nesta etapa de redação.
Converter float em int com a função Math.Floor() em C#
Use Math.Floor() quando o valor deve ser arredondado em direção ao infinito negativo. Assim como Math.Ceiling(), esse método retorna um double; converta o resultado para int para armazenar um inteiro:
using System;
class Program
{
static void Main()
{
float positive = 10.2f;
float negative = -10.2f;
int positiveResult = (int)Math.Floor(positive);
int negativeResult = (int)Math.Floor(negative);
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
O arredondamento em direção ao infinito negativo resulta em 10 para o valor positivo e -11 para o negativo. Isso difere de uma conversão direta para frações negativas, pois a conversão direta se aproxima de zero. As duas variáveis de resultado são do tipo int. Este exemplo não foi executado nesta etapa de redação.
Converter float em int com a função Math.Round() em C#
Use Math.Round() quando quiser obter o inteiro mais próximo. O método retorna um double, que pode ser convertido para int. Como esses valores não estão exatamente no meio entre dois inteiros, o exemplo não depende de uma regra de arredondamento para valores intermediários:
using System;
class Program
{
static void Main()
{
float positive = 10.8f;
float negative = -10.8f;
int positiveResult = (int)Math.Round(positive);
int negativeResult = (int)Math.Round(negative);
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
Os inteiros mais próximos são 11 e -11, respectivamente. Os valores fracionários mudam durante a conversão; Math.Round() é útil quando a tarefa exige arredondar para o valor mais próximo, mas não é uma conversão universalmente melhor. Os resultados são valores int. Este exemplo não foi executado nesta etapa de redação.