![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
установить ограничение после запятой
Aliv © (2005-09-15 14:47:00)напомните склеротику
например значение 3,1234567 сократить до 3,12 или 3,1
забыл, чесслово :(
Anatoly Podgoretsky (2005-09-16 00:21:00) [1]Ладно не будем обсуждать, те несколько фраз, которые мы сказали, позволяют понять, что о количестве знаков можно говорить только с определенной натяжкой и понимая что делается и когда применимо и почему результат не соответсвует ожидаемому.
GuAV (2005-09-15 23:20:00) [2]
> Фиксированая запятая - абсолютная точность
Для некоторого числа знаков после запятой.
не согласен с [13]
"Хитрость" currency не в том, что запятая зафиксирована (то же можно достичь и для double, если не менять экспоненту), а тем, что за запятой остаётся 10000 значений, а не 2 в степени N (как в двоичной) и не 2571. Если запятая будет плавать, устанавливая "prescaler" в 1, 10, 100, 1000, и т.д. будет банковсий тип с плавающей запятой.
0,1 (в троичной системе) не представляется абсолютно точно типом currency.
Anatoly Podgoretsky (2005-09-15 23:05:00) [3]Реализация фиксированой запятой у Борланда вызывает сожаление. Они даже в dBase смогли ее испортить.
Anatoly Podgoretsky (2005-09-15 23:04:00) [4]Фиксированая запятая - абсолютная точность
Плавающая запятая - относительная точность, правильнее назвать абсолютная неточность.
GuAV (2005-09-15 22:59:00) [5]Anatoly Podgoretsky © (15.09.05 22:14) [11]
> Например присно известное IncDay.
Там не тот самый код, так не интересно :-)
> который не в состоянии представить большинство чисел
> точно.
Ха, никакой тип не сможет представить большинство чисел точно, если говорить о множестве вещественных (или даже целых) чисел :-)
Anatoly Podgoretsky (2005-09-15 22:14:00) [6]GuAV © (15.09.05 22:07) [10]
Именно так, очень много включили в последнии версии из-за народной любви. Например присно известное IncDay. Ну невозможно говорить о количестве знаков после запятой для типа с плавающей запятой, который не в состоянии представить большинство чисел точно.
GuAV (2005-09-15 22:07:00) [7]Anatoly Podgoretsky © (15.09.05 18:56) [8]
Почти тоже самое в RoundTo из math.pas . Это следствие народной любви, ошибка, или кто-то чего-то не понял ?
GanibalLector (2005-09-15 20:03:00) [8]>сократить до 3,12 или 3,1
RoundTo(3.1234567,-1)
и
RoundTo(3.1234567,-2) , соответственно
Anatoly Podgoretsky (2005-09-15 18:56:00) [9]Ega23 © (15.09.05 15:28) [7]
Как этот неверный ответ полюбился народу, это для обычной математики, но не для двоичной с плавающей запятой. Да и не надо ему это, вполне хватит вывода с форматированием.
Ega23 (2005-09-15 15:28:00) [10]
Function Trunc2(const aValue:real):Real;
begin
result:=Trunc(aValue*100)/100;
end;
Aliv (2005-09-15 15:25:00) [11]уфф, спасибо огромное
гора с плеч :)
Германн (2005-09-15 15:22:00) [12]FloatToStrF(znach,ffFixed,3,2)
Aliv (2005-09-15 15:20:00) [13]хоть так хоть так :)
у меня сложное уравнение считается, надо вывести ответ (не важно как) с одной-двумя цифрами после точки... пусть даже
label.caption:=floattostr(znach);
наверное в памяти надо подрезать, чтоб выводить потом... или при выводе ограничить... НУ ЗАБЫЛ Я! :(((
блин, это ж так просто, вылетела функция из головы и никакой информации под рукой =(
Германн (2005-09-15 15:11:00) [14]А где сократить? В памяти или на экране?
Aliv (2005-09-15 15:09:00) [15]real
4.1234345234
надо 4.12
Antonn (2005-09-15 14:58:00) [16]
> значение 3,1234567
какой тип у значения?