Вниз
Скачать: CL | DM;

Округление в Дельфе   Найти похожие ветки 

← →
Извращенец   (2006-09-11 13:21) [0]

Добрый день! Наткнулся на проблему - внешне безобидная строка:
FormatFloat("0.0000",9.33335) на моем компе возвращает 9.3334, а у юзеров - 9.3333! Т.е. не округляет 5 до целого... почему может быть такое?


← →
PSPF2003 ©   (2006-09-11 13:28) [1]

FormatFloat("0.0",9.33335)?


← →
balepa ©   (2006-09-11 14:21) [2]

Извращенец   (11.09.06 13:21)
У юзеров и у тебя какая винда?


← →
icWasya ©   (2006-09-11 15:08) [3]

а вот ещё
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1217


← →
guav ©   (2006-09-11 15:13) [4]

Coprocessor Conrtol Word разный. Некоторые функции winapi меняют его, его можно восстанавливать из Default8087CW.
см SetPrecisionMode , Set8087CW , Default8087CW.


← →
MacroDenS ©   (2006-09-11 16:23) [5]

а если использовать ф-цию RoundTo из модуля Math?


← →
Rater1   (2006-09-12 09:13) [6]

А если так:
FormatFloat("0.0000",9.33335+0.0000001) ?


← →
evvcom ©   (2006-09-12 09:17) [7]

> [6] Rater1   (12.09.06 09:13)

А если
FormatFloat("0.0000",9.3333499+0.0000001) ? :)


← →
Rater1   (2006-09-12 09:32) [8]

Разрядность подбирается экпериментально :-)
просто часто число 9.33335  реально представлено как 9.3333499999999

да и по правилам округления
FormatFloat("0.0000",9.3333499+0.0000001) = 9.3333

правила: http://do.rksi.ru/library/courses/chm/ch01s03.dbk


← →
evvcom ©   (2006-09-12 10:07) [9]

> [8] Rater1   (12.09.06 09:32)

Правила разные бывают. То, о чем ты - банковское округление. См. SetRoundMode function.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
3-1153815094
Sasha K
2006-07-25 12:11
2006.10.01
Как сжать базу FireBird(не бэкап)???


15-1157951970
Ega23
2006-09-11 09:19
2006.10.01
С Днём рождения! 9 сентября


15-1157716639
oldman
2006-09-08 15:57
2006.10.01
Есть многое на свете, друг Горацио...


3-1154031126
bumper
2006-07-28 00:12
2006.10.01
Битовые операции в SQL


15-1157860413
Турбо
2006-09-10 07:53
2006.10.01
Что такое Турбо Эксплорер ?




   Наверх