Здравствуйте, GarryIV, Вы писали:
GIV>Hello, DuШes!
iT>>> Только учтите, в fw1.1 он округляет "серединку" то вверх, то вниз, iT>>> например если округялешь до1 знака после запятой, то 1.45 округлится iT>>> до 1.4, а 1.55 — до 1.6.
iT>>> В fw2.0 есть флажок.
D>> данное поведение полностью соотвествует стандарту IEEE 754, согласно D>> которому числа "number being rounded is halfway between two numbers" D>> (значения находятся посередине соседних значений) округляются в сторону D>> ближайшего четного..
GIV>Это конечно не может не радовать Только зачем нам этот стандарт ума не приложу. Приходится свою реализацию Round писать...
Все правильно реализовано. Например, возьмем 1.45. Если округлять в большую сторону, то мы получим сначала, 1.5, а потом 2, что совершенно неприемлимо. Если же округлять в меньшую, то мы получим сначала 1.4, а потом 1.
"GarryIV" <20023@users.rsdn.ru> schrieb im Newsbeitrag news:1094553@news.rsdn.ru...
... > D> данное поведение полностью соотвествует стандарту IEEE 754, согласно > D> которому числа "number being rounded is halfway between two numbers" > D> (значения находятся посередине соседних значений) округляются в сторону > D> ближайшего четного.. > > Это конечно не может не радовать Только зачем нам этот стандарт ума не приложу. ...
То, что огруляют до ближайшего четного числа, дает статистически уравновешанные результаты. Комерческое огругление всегда "вверх" дает статистическое отклонение от среднего. Оставшиеся копейко кто-то сеье в карман кладет
Только учтите, в fw1.1 он округляет "серединку" то вверх, то вниз, например если округялешь до1 знака после запятой, то 1.45 округлится до 1.4, а 1.55 — до 1.6.
iT>Только учтите, в fw1.1 он округляет "серединку" то вверх, то вниз, например если округялешь до1 знака после запятой, то 1.45 округлится до 1.4, а 1.55 — до 1.6.
iT>В fw2.0 есть флажок.
данное поведение полностью соотвествует стандарту IEEE 754, согласно которому числа "number being rounded is halfway between two numbers" (значения находятся посередине соседних значений) округляются в сторону ближайшего четного..
Hello, DuШes!
iT>> Только учтите, в fw1.1 он округляет "серединку" то вверх, то вниз, iT>> например если округялешь до1 знака после запятой, то 1.45 округлится iT>> до 1.4, а 1.55 — до 1.6.
iT>> В fw2.0 есть флажок.
D> данное поведение полностью соотвествует стандарту IEEE 754, согласно D> которому числа "number being rounded is halfway between two numbers" D> (значения находятся посередине соседних значений) округляются в сторону D> ближайшего четного..
Это конечно не может не радовать Только зачем нам этот стандарт ума не приложу. Приходится свою реализацию Round писать...
Здравствуйте, GarryIV, Вы писали:
GIV>Hello, DuШes!
iT>>> Только учтите, в fw1.1 он округляет "серединку" то вверх, то вниз, iT>>> например если округялешь до1 знака после запятой, то 1.45 округлится iT>>> до 1.4, а 1.55 — до 1.6.
iT>>> В fw2.0 есть флажок.
D>> данное поведение полностью соотвествует стандарту IEEE 754, согласно D>> которому числа "number being rounded is halfway between two numbers" D>> (значения находятся посередине соседних значений) округляются в сторону D>> ближайшего четного..
GIV>Это конечно не может не радовать Только зачем нам этот стандарт ума не приложу. Приходится свою реализацию Round писать...
стандарт в принципе нужен для того чтобы разрулить ситуацит, когда число непонятно к чему округлять, например 2.5 после округления — это 3 или 2?
можно округлить вот так: (авторство Publisher : O'Reilly / C# Cookbook)
Здравствуйте, Mika Soukhov, Вы писали:
MS>Здравствуйте, GarryIV, Вы писали:
GIV>>Hello, DuШes!
iT>>>> Только учтите, в fw1.1 он округляет "серединку" то вверх, то вниз, iT>>>> например если округялешь до1 знака после запятой, то 1.45 округлится iT>>>> до 1.4, а 1.55 — до 1.6.
iT>>>> В fw2.0 есть флажок.
D>>> данное поведение полностью соотвествует стандарту IEEE 754, согласно D>>> которому числа "number being rounded is halfway between two numbers" D>>> (значения находятся посередине соседних значений) округляются в сторону D>>> ближайшего четного..
GIV>>Это конечно не может не радовать Только зачем нам этот стандарт ума не приложу. Приходится свою реализацию Round писать...
MS>Все правильно реализовано. Например, возьмем 1.45. Если округлять в большую сторону, то мы получим сначала, 1.5, а потом 2, что совершенно неприемлимо. Если же округлять в меньшую, то мы получим сначала 1.4, а потом 1.
DШ>данное поведение полностью соотвествует стандарту IEEE 754, согласно которому числа "number being rounded is halfway between two numbers" (значения находятся посередине соседних значений) округляются в сторону ближайшего четного..
А никто не говорит, что это "вообще неправильно". Просто надо это иметь в виду, потому что это не то, чего многие ожидают и не то, что часто бывает нужно.
А нужно бывает округление серединки во вполне определенную сторону (в зависимости от того, покупаем или продаем )