Arredonde um valor duplo para um valor inteiro em C#
-
Arredonde um valor duplo para um valor inteiro com a função
Math.Ceiling()
emC#
-
Arredonde um valor duplo para um valor inteiro com a função
Math.Floor()
emC#
-
Arredonde um valor duplo para um valor inteiro com a função
Math.Round()
emC#
Este tutorial discutirá os métodos para arredondar um valor duplo para um valor inteiro em C#.
Arredonde um valor duplo para um valor inteiro com a função Math.Ceiling()
em C#
Se quisermos arredondar o valor duplo 2.5
para o valor inteiro 3
, temos que usar a função Math.Ceiling()
. A função Math.Ceiling()
arredonda um valor decimal para o próximo valor inteiro. O exemplo de código a seguir nos mostra como podemos arredondar um valor duplo para um valor inteiro com a função Math.Ceiling()
em C#.
using System;
namespace round_double_to_intt {
class Program {
static void Main(string[] args) {
double d = 2.5;
int i = (int)Math.Ceiling(d);
Console.WriteLine("Original Value = {0}", d);
Console.WriteLine("Rounded Value = {0}", i);
}
}
}
Resultado:
Original Value = 2.5 Rounded Value = 3
Arredondamos o valor duplo 2.5
para o valor inteiro 3
com a função Math.Ceiling()
em C#. O problema com esta abordagem é que a função Math.Ceiling()
converte o valor decimal 2.3
para o valor inteiro 3
.
Arredonde um valor duplo para um valor inteiro com a função Math.Floor()
em C#
Se quisermos arredondar o valor duplo 2.5
para o valor inteiro 2
, temos que usar a função Math.Floor()
. A função Math.Floor()
arredonda um valor decimal para o valor inteiro anterior. O exemplo de código a seguir nos mostra como podemos arredondar um valor duplo para um valor inteiro com a função Math.Floor()
em C#.
using System;
namespace round_double_to_intt {
class Program {
static void Main(string[] args) {
double d = 2.5;
int i = (int)Math.Floor(d);
Console.WriteLine("Original Value = {0}", d);
Console.WriteLine("Rounded Value = {0}", i);
}
}
}
Resultado:
Original Value = 2.5 Rounded Value = 2
Arredondamos o valor duplo 2.5
para o valor inteiro 2
com a função Math.Floor()
em C#. O problema com esta abordagem é que a função Math.Floor()
converte o valor decimal 2.9
para o valor inteiro 2
.
Arredonde um valor duplo para um valor inteiro com a função Math.Round()
em C#
A função Math.Round()
pode ser usada para arredondar um valor duplo para o valor inteiro mais próximo em C#. A função Math.Round()
retorna um valor duplo que é arredondado para o inteiro mais próximo. O exemplo de código a seguir nos mostra como podemos arredondar um valor duplo para um valor inteiro com a função Math.Round()
em C#.
using System;
namespace round_double_to_intt {
class Program {
static void Main(string[] args) {
double d = 2.9;
int i = (int)Math.Round(d);
Console.WriteLine("Original Value = {0}", d);
Console.WriteLine("Rounded Value = {0}", i);
}
}
}
Resultado:
Original Value = 2.9 Rounded Value = 3
Arredondamos o valor decimal 2.9
para o valor inteiro 3
com a função Math.Round()
em C#. Usamos typecasting para converter o valor duplo retornado pela função Math.Round()
em um valor inteiro. Existe apenas um problema com essa abordagem. A função Math.Round()
converte o valor decimal 2.5
para o valor inteiro 2
.
Podemos corrigir esse problema especificando MidpointRounding.AwayFromZero
nos argumentos da função Math.Round()
. O exemplo de código a seguir nos mostra como podemos arredondar 2.5
para 3
com a função Math.Round()
em C#.
using System;
namespace round_double_to_intt {
class Program {
static void Main(string[] args) {
double d = 2.5;
int i = (int)Math.Round(d, MidpointRounding.AwayFromZero);
Console.WriteLine("Original Value = {0}", d);
Console.WriteLine("Rounded Value = {0}", i);
}
}
}
Resultado:
Original Value = 2.5 Rounded Value = 3
Arredondamos o valor decimal 2.5
para o valor inteiro 3
especificando o parâmetro MidpointRounding.AwayFromZero
na função Math.Round()
em C#.
Todos os métodos discutidos acima são úteis em diferentes cenários específicos. A pior maneira possível de arredondar um valor duplo para um valor inteiro é por conversão explícita de tipos. Isso ocorre porque o typecasting explícito ignora todos os valores após a vírgula decimal e retorna apenas o valor inteiro antes da vírgula decimal.
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