¿Cómo puedo dividir dos números enteros para obtener un doble?
¿Cómo divido dos números enteros para obtener un doble?
Aceptado
Quieres emitir los números:
double num3 = (double)num1/(double)num2;
Nota: Si alguno de los argumentos en C# es a double
, double
se utiliza una división que da como resultado a double
. Entonces, lo siguiente también funcionaría:
double num3 = (double)num1/num2;
Para más información, ver:
Perlas de red de puntos
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
Los dobles se representan asignando 64 bits mientras que los decimales utilizan 128
(double)100/863
//0.11587485515643106
Explicación detallada de la "precisión"
Para obtener más detalles sobre la representación de punto flotante en binario y su precisión, consulte este artículo de Jon Skeet donde habla floats
y doubles
este donde habla .decimals