obtener - operaciones con decimales en c#
¿Cómo puedo dividir dos enteros para obtener un doble? (5)
¿Cómo divido dos enteros para obtener un doble?
Complementando la respuesta de @ NoahD
Para tener una mayor precisión puedes convertir a decimal:
(decimal)100/863
//0.1158748551564310544611819235
O:
Decimal.Divide(100, 863)
//0.1158748551564310544611819235
El doble se representa asignando 64 bits mientras que el decimal usa 128
(double)100/863
//0.11587485515643106
Explicación en profundidad de "precisión"
Para obtener más detalles sobre la representación de punto flotante en binario y su precisión, eche un vistazo a este artículo de Jon Skeet, donde habla de floats
y doubles
y este donde habla de decimals
.
Convertir uno de ellos a doble primero. Este formulario funciona en muchos idiomas:
real_result = (int_numerator + 0.0) / int_denominator
Emitir los enteros a dobles.
Quieres lanzar los números:
double num3 = (double)num1/(double)num2;
Nota: Si alguno de los argumentos en C # es un double
, se usa una double
división que resulta en un double
. Por lo tanto, lo siguiente también funcionaría:
double num3 = (double)num1/num2;
Para más información, ver:
var firstNumber=5000,
secondeNumber=37;
var decimalResult = decimal.Divide(firstNumber,secondeNumber);
Console.WriteLine(decimalResult );