Witam
Mamy np funkcję :
function dzielenie(X:integer,Y:integer):real
begin
dzielenie:=X/Y;
end;
Jak sprawdzić , po wywołaniu funkcji i otrzymaniu wartości czy dana liczba(typu real) jest liczbą całkowitą?
Witam
Mamy np funkcję :
function dzielenie(X:integer,Y:integer):real
begin
dzielenie:=X/Y;
end;
Jak sprawdzić , po wywołaniu funkcji i otrzymaniu wartości czy dana liczba(typu real) jest liczbą całkowitą?
Może np. tak? (pewnie jest jakiś lepszy sposób, no ale :) ):
var
R: Real;
begin
R := Dzielenie(12, 4);
if R = Trunc(R) then
// całkowita :)
Witam
Mamy np funkcję :
function dzielenie(X:integer,Y:integer):real
begin
dzielenie:=X/Y;
end;
Jak sprawdzić , po wywołaniu funkcji i otrzymaniu wartości czy dana liczba(typu real) jest liczbą całkowitą?
if round(liczba)=liczba then {jest_calkowita}
// Edit: Nie udało mi sie odpisać jako pierwszy :(
if x mod y = 0 then
//dzieli sie bez reszty (tzn calkowita wychodzi)
Jak sprawdzić , po wywołaniu funkcji i otrzymaniu wartości czy dana liczba(typu real) jest liczbą całkowitą?
Operator mod, o ile mi wiadomo, jest możliwy do zastosowania tylko dla operandów całkowitych (a więc Real jako jeden z operandów prawdopodobnie spowoduje błąd kompilacji).
No tak, ale operandy SĄ całkowite (X, Y: Integer). Tylko wynik ew. nie. No i wtedy mod zadziała. Już po ptokach (jak już mamy liczbę typu real), to jakoś też się chyba część ułamkową wyznacza. Ale jakoś nie mogę znaleźć bezpośredniej metody. Zawsze pozostaje porównanie Trunc albo Int z wartością.