Re[3]: SELECT ROUND(0.045, 2) FROM ... надо 0.05 а не 0.04
От: DarkSid Россия  
Дата: 15.06.06 06:15
Оценка:
Здравствуйте, surovi, Вы писали:

S>Здравствуйте, DarkSid, Вы писали:


DS>>В свое время мне помогло так

DS>>SELECT SUM(ROUND((DateDiff("n", StartTime, EndTime)/60)*Rate + 0.000001, 2)) AS Total

S>Да, действительно, такой вариант решит проблему, но, к сожалению, не со 100% гарантией, т.к.

S>если округление будет зависеть от седьмого знака после запятой, то округлиться неправильно.
S>Например число 0.4444441 -> ROUND(0.4444441, 2) = 0.44
S>А если так 0.4444441 + 0.000001 = 0.4444451 -> ROUND(0.4444451, 2) = 0.45
S>т.е. получаются разные числа, конечно можно еще увеличить точность, до восьми знаков после запятой или больше, но опять же это не дает 100% гарантии.

S>Но все-равно спасибо за вариант.

S>Может быть есть еще предложения

Результаты выборки
select ROUND(0.4444441 +0.0001, 2)
.4400000

select ROUND(0.4444441 +0.001, 2)
.4500000

select ROUND(0.4444441 +0.000001, 2)
.4400000
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.