[delphi] czy jest funkcja zaokroglajaca w gore?

Odpowiedz Nowy wątek
2006-11-08 15:41
0

mam np takie liczby
a = 23,41
b = 23,40
c = 23,47

czy jest jakas funkcja ktora
zaokrogla liczbe w gore zeby bylo:

a = 23,5
b = 23,5
c = 23,5

Pozostało 580 znaków

2006-11-08 15:50
0

Jest funkcja Floor(); ale ona zaokrągla zawsze do góry tylko że do liczby całkowitej.
Można oczywiście wcześniej tą liczbe odpowiednio pomnożyć np. x100 albo x1000, uzyć Floor i podzielic.


Pozostało 580 znaków

2006-11-08 16:00
0

jak mam liczbe
34,4x i cokolwiek byloby za 'x' jakas liczba
to zeby liczba przed x-em byla zwiekszona

czyli:
34,76 = 34,8
37,70 = 37,8
37,98 = 38,0

Pozostało 580 znaków

2006-11-08 16:44
0

34,76 = 34,8
37,70 = 37,8
37,98 = 38,0

Math.RoundTo

Pozostało 580 znaków

2006-11-08 18:09
0
Piotrekdp napisał(a)
function UpperRound (Value:real):real;
var
FracInt:real;
begin
if Frac(Value)>0.40 then
begin
Fracint:=(Frac(Value)*10)-Frac(Value*10)+1;
Result:=Value-Frac(Value)+Fracint/10;
end
else Result:=Value;
end;

Jak jest mniej niż 0,4X zostawia jak było
chyba jak mnie j i równe 0,4 :)

Pozostało 580 znaków

2006-11-08 18:11
0

Nie działa mi ta funkcja skleilem takie cos:

function UpperRound (Value:real):real;
var
FracInt:real;
begin
if Frac(Value)>0.40 then
begin
Fracint:=(Frac(Value)*10)-Frac(Value*10)+1;
Result:=Value-Frac(Value)+Fracint/10;
end
else Result:=Value;
end;

function RealToStr(inreal: Extended; digits: Byte): string;
  var
    S: string;
  begin
    Str(inreal: 0: digits, S);
    realToStr := S;
  end;

function StrToReal(chaine: string): Real;
  var
    r: Real;
    Pos: Integer;
  begin
    Val(chaine, r, Pos);
    if Pos > 0 then Val(Copy(chaine, 1, Pos - 1), r, Pos);
    Result := r;
  end;

Potem wstawilem sobie guzik i komponent edit i podpialem o guzik taki kod:

Form1.Caption := RealToStr(UpperRound(StrToReal(Edit1.Text)),2);

i jak wpisze 31.21 to nadal mam 31.21 :/ i nie wiem gdzie jest blad

Pozostało 580 znaków

2006-11-09 00:09
0
function UpperRound (Value:real):real;
var
FracInt:real;
begin
Value := Value + 0.01;
Fracint:=(Frac(Value)*10)-Frac(Value*10)+1;
Result:=Value-Frac(Value)+Fracint/10;
end;

Musialem to tak przerobic i teraz sie sprawdza. DZIEKUJE

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0