¿Cómo divido dos enteros para obtener un doble?
¿Cómo divido dos enteros para obtener un doble?
Respuestas:
Quieres lanzar los números:
double num3 = (double)num1/(double)num2;
Nota: Si alguno de los argumentos en C # es a double, doublese usa una división que resulta en a double. Entonces, lo siguiente también funcionaría:
double num3 = (double)num1/num2;
Para más información, ver:
double num3 = (double)(num1/num2);. ¡Esto solo le dará una doble representación del resultado de la división entera!
doublelugar de float? Puedo ver la pregunta, doublepero tengo curiosidad de todos modos.
doubley no float. Cuando escribe una variable como var a = 1.0;, este 1.0 siempre es un double. Supongo que esta es la razón principal.
Complementando la respuesta de @ NoahD
Para tener una mayor precisión, puede 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
Para más detalles acerca de la representación de coma flotante en binario y su precisión echar un vistazo a este artículo de Jon Skeet donde habla de floatsy doublesy éste donde habla decimals.
doubletiene una precisión de 53 bits, y es un formato binario de coma flotante, mientras que decimales ... decimal, por supuesto, con 96 bits de precisión . Entonces doublees preciso a ~ 15-17 dígitos decimales y 28-29 dígitos decimales (y no el doble de precisión de double). Lo más importante decimales que solo usa 102 de los 128 bits
decimals(96), pero doublestiene 52 bits de mantisa , no 53.
convierte los enteros en dobles.
Convierta uno de ellos a un doble primero. Este formulario funciona en muchos idiomas:
real_result = (int_numerator + 0.0) / int_denominator
var result = 1.0 * a / b;
var firstNumber=5000,
secondeNumber=37;
var decimalResult = decimal.Divide(firstNumber,secondeNumber);
Console.WriteLine(decimalResult );
doubley no decimal.