Как я могу разделить два целых числа, чтобы получить двойное число? - PullRequest
230 голосов
/ 19 марта 2009

Как мне разделить два целых числа, чтобы получить двойное число?

Ответы [ 5 ]

385 голосов
/ 19 марта 2009

Вы хотите разыграть числа:

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

Примечание: Если какой-либо из аргументов в C # является double, используется деление double, что приводит к double. Таким образом, будет работать следующее:

double num3 = (double)num1/num2;

Для получения дополнительной информации см .:

Dot Net Perls

25 голосов
/ 12 декабря 2014

Дополняет ответ @ NoahD

Для большей точности вы можете привести к десятичной дроби:

(decimal)100/863
//0.1158748551564310544611819235

Или:

Decimal.Divide(100, 863)
//0.1158748551564310544611819235

Представлены двойные, выделяющие 64 бита, в то время как десятичное число использует 128

(double)100/863
//0.11587485515643106

Углубленное объяснение "точности"

Для получения более подробной информации о представлении с плавающей запятой в двоичном виде и его точности посмотрите на эту статью от Джона Скита, где он говорит о floats и doubles и об этом где он говорит о decimals.

10 голосов
/ 19 марта 2009

приведите целые числа к двойникам.

5 голосов
/ 19 марта 2009

Конвертируйте один из них в двойное число первым. Эта форма работает на многих языках:

 real_result = (int_numerator + 0.0) / int_denominator
0 голосов
/ 10 мая 2017
var firstNumber=5000,
secondeNumber=37;

var decimalResult = decimal.Divide(firstNumber,secondeNumber);

Console.WriteLine(decimalResult );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...