Converter Float para Int em C#

Muhammad Maisam Abbas 16 fevereiro 2024
  1. Converter Float em Int com Typecasting Explícito em C#
  2. Converter Float em Int com a função Math.Ceiling() em C#
  3. Converter Float em Int com a função Math.Floor() em C#
  4. Converter Float em Int com a função Math.Round() em C#
Converter Float para Int em C#

Este tutorial apresentará métodos para converter um valor flutuante em um valor inteiro em C#.

Converter Float em Int com Typecasting Explícito em C#

Typecasting é uma maneira de converter um valor de um tipo de dados para outro tipo de dados. O tipo de dados Float leva mais bytes do que o tipo de dados Int. Portanto, temos que usar typecasting explícito para converter o valor float em um valor Int. O exemplo de código a seguir nos mostra como converter um valor flutuante em um valor inteiro com conversão de tipos explícita em C#.

using System;

namespace convert_float_to_int {
  class Program {
    static void Main(string[] args) {
      float f = 10.2f;
      int i = (int)f;
      Console.WriteLine("Converted float {0} to int {1}", f, i);
    }
  }
}

Resultado:

Converted float 10.2 to int 10

Convertemos a variável float f para a variável inteira i com conversão explícita de tipos em C#. O (int) é usado para converter f em i. O problema com essa abordagem é que ela ignora todos os valores após a vírgula decimal. Por exemplo, o valor flutuante 10.9 também é convertido para o valor inteiro 10.

Converter Float em Int com a função Math.Ceiling() em C#

Se quisermos considerar os valores após a vírgula decimal, temos que usar alguma abordagem diferente da especificação explícita de tipos. A função Math.Ceiling() converte um valor decimal para o próximo valor inteiro. A função Math.Ceiling() retorna um valor duplo que pode ser convertido em um valor inteiro usando conversão explícita de tipos. O exemplo de código a seguir nos mostra como podemos converter um valor flutuante em um valor inteiro com a função Math.Ceiling() em C#.

using System;

namespace convert_float_to_int {
  class Program {
    static void Main(string[] args) {
      float f = 10.2f;
      int i = (int)Math.Ceiling(f);
      Console.WriteLine("Converted float {0} to int {1}", f, i);
    }
  }
}

Resultado:

Converted float 10.8 to int 11

Convertemos a variável flutuante f para a variável inteira i com a função Math.Ceiling() em C#. O (int) é usado para converter o valor duplo retornado pela função Math.Ceiling() em um valor inteiro. O problema com essa abordagem é que ela sempre retorna o próximo valor inteiro. Por exemplo, o valor flutuante 10.1 também é convertido para o valor inteiro 11.

Converter Float em Int com a função Math.Floor() em C#

A função Math.Floor() também pode ser usada junto com o typecasting explícito para converter um valor flutuante em um valor inteiro em C#. A função Math.Floor() é usada para converter o valor decimal para o valor inteiro anterior. A função Math.Floor() retorna um valor duplo que pode ser convertido em um valor inteiro com conversão explícita de tipos. O exemplo de código a seguir nos mostra como podemos converter um valor flutuante em um valor inteiro com a função Math.Floor() em C#.

using System;

namespace convert_float_to_int {
  class Program {
    static void Main(string[] args) {
      float f = 10.2f;
      int i = (int)Math.Floor(f);
      Console.WriteLine("Converted float {0} to int {1}", f, i);
    }
  }
}

Resultado:

Converted float 10.2 to int 10

Convertemos a variável float f para a variável inteira i com a função Math.Floor() em C#. O (int) é usado para converter o valor duplo retornado pela função Math.Floor() em um valor inteiro. O problema com essa abordagem é que ela sempre retorna o valor inteiro anterior. Por exemplo, o valor flutuante 10.9 também é convertido para o valor inteiro 10.

Converter Float em Int com a função Math.Round() em C#

As abordagens discutidas acima funcionam, mas há algumas desvantagens em todas as abordagens. Se quisermos converter um valor flutuante em um valor inteiro, mas não quisermos que nossos dados mudem, podemos usar a função Math.Round() em C#. A função Math.Round(), como o nome sugere, é usada para arredondar os valores decimais para o valor inteiro mais próximo. O Math.Round() retorna um valor duplo, que pode ser convertido para o tipo de dados inteiro com conversão explícita de tipos. O exemplo de código a seguir nos mostra como podemos converter um valor flutuante em um valor inteiro com a função Math.Round() em C#.

using System;

namespace convert_float_to_int {
  class Program {
    static void Main(string[] args) {
      float f = 10.8f;
      int i = (int)Math.Round(f);
      Console.WriteLine("Converted float {0} to int {1}", f, i);
    }
  }
}

Resultado:

Converted float 10.8 to int 11

Convertemos a variável float f para a variável inteira i com a função Math.Round() em C#. O (int) é usado para converter o valor duplo retornado pela função Math.Round() em um valor inteiro. Esta é a abordagem ideal para converter um valor flutuante em um valor inteiro em C#.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artigo relacionado - Csharp Float

Artigo relacionado - Csharp Integer