Jak podzielić dwie liczby całkowite, aby uzyskać podwójny?
Jak podzielić dwie liczby całkowite, aby uzyskać podwójny?
Odpowiedzi:
Chcesz rzucić liczby:
double num3 = (double)num1/(double)num2;
Uwaga: Jeśli którykolwiek z argumentów w języku C # jest a double, doubleużywany jest podział, który daje w wyniku double. Więc działałyby również:
double num3 = (double)num1/num2;
Aby uzyskać więcej informacji zobacz:
double num3 = (double)(num1/num2);. To da ci podwójną reprezentację wyniku podziału liczb całkowitych!
doublezamiast float? Widzę pytania wymagające, doubleale i tak jestem ciekawy.
doublea nie float. Kiedy piszesz zmienną taką jak var a = 1.0;ta, 1.0 zawsze jest double. To chyba główny powód.
Uzupełnienie odpowiedzi @ NoahD
Aby mieć większą precyzję, możesz rzutować na dziesiętne:
(decimal)100/863
//0.1158748551564310544611819235
Lub:
Decimal.Divide(100, 863)
//0.1158748551564310544611819235
Przedstawione są podwójne przydzielające 64 bity, podczas gdy dziesiętne używa 128
(double)100/863
//0.11587485515643106
Aby uzyskać więcej informacji na temat reprezentacji zmiennoprzecinkowej na binarny i jego precyzji przyjrzeć tym artykule od Jon Skeet gdzie mówi o floatsi doublesa ten jeden , gdzie mówi o decimals.
doublema precyzję 53 bitów i jest to binarny format zmiennoprzecinkowy, podczas gdy decimaljest ... dziesiętny, oczywiście z 96 bitami precyzji . doubleJest więc dokładny do ~ 15-17 cyfr dziesiętnych i 28-29 cyfr dziesiętnych (i nie dwukrotnie więcej niż precyzja double). Co ważniejsze, decimalfaktycznie używa tylko 102 ze 128 bitów
decimals(96), ale doublesma 52 bity mantysy , a nie 53.
rzuć liczby całkowite do liczby podwójnej.
Przekształć jeden z nich w podwójny. Ten formularz działa w wielu językach:
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 );
doublea nie decimal.