Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизПочему функция неверно считает? Найти похожие ветки
← →
Nik8. © (2005-01-14 08:15) [0]Мне потребовалось посчитать сколько будет стоить игра на заданый период.
Имею только стоимость игры за 1 час.
Написал функцию.
{Входные аргументы FTime - кол времени, FHSumm - Цена за 1 час}
function SubCalc(FTime :TDateTime; FHSumm :Double) :Double;
begin
//ReplaceDate(FTime, 0);
{Функция работает по такой схеме Высчитываем стоимость за 1 минуту(для этого делю стоимость за 1 час на 60) и умножаем на обшее количество минут}
Result :=((FHSumm / 60) * MinutesBetween(0, FTime) );
//ShowMessage(FloatToStr(Result));
end;
Вызываю например так.
....
var
FAllSumm :Double;
begin
{На примере нужно посчитать стоимость за 4 часа, стоимость 1 часа пускай будет 70 руб}
FAllSumm :=SubCalc(IncHour(0, 4), 70);
ShowMessage(FloatToStr(FAllSumm));
end;
В результате функция возврашает "278,833333333333" хотя должно быть "280.00" :(
Что делать? Кто виноват? Простой Калькулятор считает верно.
Безобразие! Борланд виноват однозначно ;)
← →
Nik8. © (2005-01-14 08:27) [1]Удалите дубль.
← →
Digitman © (2005-01-14 09:39) [2]у меня в Д7 твоя ф-ция возвращает ровно 280
← →
Семен Сорокин © (2005-01-14 10:36) [3]
MinutesBetween(EncodeDateTime(2003,7,16,4,54,0,0),
EncodeDateTime(2003,7,16,4,55,0,0))
возвращает 0, аMinutesBetween(EncodeDateTime(2003,7,16,15,54,0,0),
EncodeDateTime(2003,7,16,15,55,0,0))
возвращает 1.
см. этот баг в Borland News:
http://qc.borland.com/wc/wc.exe/details?reportid=4430
← →
Nik8. © (2005-01-17 08:34) [4]Понятно, значит я угадал виновного.
Большое спасибо за ответы!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.044 c