¿Cómo puedo dividir dos números enteros para obtener un doble?

Resuelto leora asked hace 15 años • 9 respuestas

¿Cómo divido dos números enteros para obtener un doble?

leora avatar Mar 19 '09 11:03 leora
Aceptado

Quieres emitir los números:

double num3 = (double)num1/(double)num2;

Nota: Si alguno de los argumentos en C# es a double, doublese 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

NoahD avatar Mar 19 '2009 04:03 NoahD

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 floatsy doubleseste donde habla .decimals

fabriciorissetto avatar Dec 12 '2014 18:12 fabriciorissetto