Converti Float in Int in C#

Muhammad Maisam Abbas 16 febbraio 2024
  1. Converti Float in Int con typecasting esplicito in C#
  2. Converti Float in Int con la funzione Math.Ceiling() in C#
  3. Converti Float in Int con la funzione Math.Floor() in C#
  4. Converti Float in Int con la funzione Math.Round() in C#
Converti Float in Int in C#

Questo tutorial introdurrà metodi per convertire un valore float in un valore intero in C#.

Converti Float in Int con typecasting esplicito in C#

Typecasting è un modo per convertire un valore da un tipo di dati a un altro tipo di dati. Il tipo di dati Float richiede più byte rispetto al tipo di dati Int. Quindi, dobbiamo usare il typecasting esplicito per convertire il valore float in un valore Int. L’esempio di codice seguente mostra come convertire un valore float in un valore intero con typecasting esplicito in 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);
    }
  }
}

Produzione:

Converted float 10.2 to int 10

Abbiamo convertito la variabile float f nella variabile intera i con typecasting esplicito in C#. Il (int) è usato per lanciare f a i. Il problema con questo approccio è che ignora tutti i valori dopo il punto decimale. Ad esempio, anche il valore float 10.9 viene convertito nel valore intero 10.

Converti Float in Int con la funzione Math.Ceiling() in C#

Se vogliamo considerare i valori dopo il punto decimale, dobbiamo usare un approccio diverso dal typecasting esplicito. La funzione Math.Ceiling() converte un valore decimale nel successivo valore intero. La funzione Math.Ceiling() restituisce un valore double che può essere convertito in un valore intero utilizzando il typecasting esplicito. Il seguente esempio di codice ci mostra come convertire un valore float in un valore intero con la funzione Math.Ceiling() in 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);
    }
  }
}

Produzione:

Converted float 10.8 to int 11

Abbiamo convertito la variabile float f nella variabile intera i con la funzione Math.Ceiling() in C#. Il (int) è usato per convertire il valore double restituito dalla funzione Math.Ceiling() a un valore intero. Il problema con questo approccio è che restituisce sempre il valore intero successivo. Ad esempio, anche il valore float 10.1 viene convertito nel valore intero 11.

Converti Float in Int con la funzione Math.Floor() in C#

La funzione Math.Floor() può anche essere usata insieme al typecasting esplicito per convertire un valore float in un valore intero in C#. La funzione Math.Floor() viene utilizzata per convertire il valore decimale nel valore intero precedente. La funzione Math.Floor() restituisce un valore double che può essere convertito in un valore intero con typecasting esplicito. Il seguente esempio di codice ci mostra come convertire un valore float in un valore intero con la funzione Math.Floor() in 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);
    }
  }
}

Produzione:

Converted float 10.2 to int 10

Abbiamo convertito la variabile float f nella variabile intera i con la funzione Math.Floor() in C#. Il (int) è usato per convertire il valore double restituito dalla funzione Math.Floor() su un valore intero. Il problema con questo approccio è che restituisce sempre il valore intero precedente. Ad esempio, anche il valore float 10.9 viene convertito nel valore intero 10.

Converti Float in Int con la funzione Math.Round() in C#

Gli approcci discussi sopra funzionano, ma ogni approccio presenta alcuni inconvenienti. Se vogliamo convertire un valore float in un valore intero ma non vogliamo che i nostri dati cambino, possiamo usare la funzione Math.Round() in C#. La funzione Math.Round(), come suggerisce il nome, viene utilizzata per arrotondare i valori decimali al valore intero più vicino. Il Math.Round() restituisce un valore double, che può essere convertito nel tipo di dati intero con typecasting esplicito. Il seguente esempio di codice ci mostra come convertire un valore float in un valore intero con la funzione Math.Round() in 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);
    }
  }
}

Produzione:

Converted float 10.8 to int 11

Abbiamo convertito la variabile float f nella variabile intera i con la funzione Math.Round() in C#. Il (int) è usato per convertire il valore double restituito dalla funzione Math.Round() su un valore intero. Questo è l’approccio ottimale per convertire un valore float in un valore intero in 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

Articolo correlato - Csharp Float

Articolo correlato - Csharp Integer