Разделить, не возвращая десятичное значение, которое я ожидаю

Возможный дубликат:
Что случилось с этим делением?

Если вы разделите 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, которые оба удваивают, чтобы получить ожидаемый ответ.