![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос наипростейший, тока не помню как...
Dennis S © (2002-10-21 15:43:00)Как убрать (или зафиксировать) кол-во знаков после запятой?
---
c := b * 0.18;
ed18.Text := FloatToStr(c);
---
результат, например = 134,567
а мне надо 134,ХХ
а округлять можно как-то? 134,562 => 134,56 // 134,567 => 134,57
Спасибо заранее :)
Dennis S (2002-10-21 16:36:00) [1]2 NickBat
Спасибо, я поставил +3 (в "...ss)+1+Sign,255...")
то что надо... :)
ХХХХХ ,ХХ
MegaBass (2002-10-21 16:31:00) [2]c: double;
s: string[10];
Str(c:4:2, S);
c:=StrToFloat(S);
NickBat (2002-10-21 16:19:00) [3]Два знака после запятой - это я понимаю копейки?
Так десятые доли копейки надо отбрасывать, а не округлять.
Я делаю это так:
function TruncZent(Sum: double; Sign: integer): double;
var
ss: string;
begin
ss:=FloatToStr(Sum);
if pos(",",ss)>0 then delete(ss,pos(",",ss)+1+Sign,255);
Result:=StrToFloat(ss);
end;
Конечно тут надо смотреть, что в системе за разделитель стоит.
Предвижу замечания - зачем в Строку переводить? Можете поверить, работает отлично, проверено долгой практикой. Варианты с промежуточным Integer имеют свои "глюки".
Dennis S (2002-10-21 15:54:00) [4]2 REA
---
FormatFloat("0.00", c);
c := b * 0.18;
ed18.Text := FloatToStr(c);
---
так не работает - 3 знака вылезает...
c := b * 0.18;
FormatFloat("0.00", c);
----
тоже самое...
Dennis S (2002-10-21 15:50:00) [5]А куда и как?
---
FormatFloat("0.00", c);
c := b * 0.18;
ed18.Text := FloatToStr(c);
---
так не работает - 3 знака вылезает...
MegaBass (2002-10-21 15:50:00) [6]RoundTo...
REA (2002-10-21 15:45:00) [7]FormatFloat("0.00", Value)