Разделить, не возвращая десятичное значение, которое я ожидаю
Возможный дубликат:
Что случилось с этим делением?
Если вы разделите 2 / 3
, он должен вернуть 0.66666666666666667
. Вместо этого я получаю 0.0
в двойном значении и 0
в десятичном формате.
Моя цель состоит в том, чтобы разделить даже (например, 2 / 3
) и округлить до 1 всегда до ближайшего.
Любая помощь?
Ответы
Ответ 1
Вы делаете целочисленное деление по звукам. Попробуйте следующее:
decimal result = 2.0 / 3.0;
Или даже заставляйте его делать десятичные дроби для всех операций:
decimal result = 2.0m / 3.0m;
Это должно дать вам результат больше, как вы ожидаете.
Ответ 2
Выполнение 2/3 - целочисленное деление, которое не будет возвращать десятичное место деления. Чтобы получить .666666667, вам нужно будет сделать 2.0/3.0, которые оба удваивают, чтобы получить ожидаемый ответ.