ИЗзвините за глупый вопрос, но мне надо выполнить операцию округления.
Использую функцию Math.Round(val);
Так она мне просто возвращает целую часть числа.
Здравствуйте, <Аноним>, Вы писали:
А>ИЗзвините за глупый вопрос, но мне надо выполнить операцию округления. А>Использую функцию Math.Round(val); А>Так она мне просто возвращает целую часть числа.
А>Не могу найти нормальную функцию. Подскажите плз.
Как раз Round нормальная, а целую часть возвращает Floor.
Math.Round Overloaded. Returns the number nearest the specified value.
Math.Floor Returns the largest whole number less than or equal to the specified number.
... << RSDN@Home 1.1.3 stable >>
Превратим окружающую нас среду в воскресенье.
Re[2]: Нормальное округление вещественного числа
От:
Аноним
Дата:
21.09.04 15:31
Оценка:
Здравствуйте, ie, Вы писали:
ie>Здравствуйте, <Аноним>, Вы писали:
А>>ИЗзвините за глупый вопрос, но мне надо выполнить операцию округления. А>>Использую функцию Math.Round(val); А>>Так она мне просто возвращает целую часть числа.
А>>Не могу найти нормальную функцию. Подскажите плз.
ie>Как раз Round нормальная, а целую часть возвращает Floor. ie>
ie>Math.Round Overloaded. Returns the number nearest the specified value.
ie>Math.Floor Returns the largest whole number less than or equal to the specified number.
Тогда интересно почему на 1.5 она возвращает 1 а не 2?
Здравствуйте, <Аноним>, Вы писали:
ie>>Как раз Round нормальная, а целую часть возвращает Floor. ie>>
ie>>Math.Round Overloaded. Returns the number nearest the specified value.
ie>>Math.Floor Returns the largest whole number less than or equal to the specified number.
А>Тогда интересно почему на 1.5 она возвращает 1 а не 2?
Потому что нужно прочитать ее описание в хелпе, где написано:
Return Value
The whole number nearest a. If a is halfway between two whole numbers, one of which by definition is even and the other odd, then the even number is returned.
Remarks
The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding to nearest, or banker's rounding.
А>Тогда интересно почему на 1.5 она возвращает 1 а не 2?
В документации написано.
Remarks
The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding to nearest, or banker's rounding. Example
The following code example demonstrates rounding to nearest whole number value.
аноним> Тогда интересно почему на 1.5 она возвращает 1 а не 2?
shapkin> then the even number is returned.
насколько я помню — even это четное
я как-то делал округление без использование math, было это вот так (правда на плюсах).
double dLeft = ... ; // точно рассчитанная (расчеты все в double) координата
WORD iLeft = (dLeft — (WORD) dLeft) < 0.5 ? dLeft : dLeft+1; // round() — ближайшая целая координата
from __python__ import paradigma
from __future__ import generators
from __waterfall__ import power
Здравствуйте, PawnHunter, Вы писали:
А>>Тогда интересно почему на 1.5 она возвращает 1 а не 2?
PH>В документации написано.
... PH>А такое округление, что тебе нужно, отсутствует((
Можно написать свою функцию
double MyRound( double val )
{
return Math.Floor( val + 0.5 );
}
Здравствуйте, __WaterFall__, Вы писали:
__W>неувязочка
__W>аноним> Тогда интересно почему на 1.5 она возвращает 1 а не 2? __W>shapkin> then the even number is returned.
Это у Анонима неувязочка, Math.Round(1.5) возвращает 2.