Diskuze: Jak určit, jestli je číslo desetinné, nebo ne

Ostatní jazyky Delphi Delphi (Pascal) Jak určit, jestli je číslo desetinné, nebo ne

Avatar
tomgerzicak
Člen
Avatar
tomgerzicak:

Ahoj, při vypisování výsledků (klasicky writeln()) z vypočítaného příkladu mi vypíše např. 2.00, dá se nějak zjistit, jestli je dané číslo pouze celé a potom to upravit podmínkou aby se tam ta desetinná místa nepsala? Děkuji :D

 
Odpovědět 30. ledna 19:52
Avatar
Odpovídá na tomgerzicak
Michal Haňáček:

Ahoj, pokud tě pro další zpracování nazajimá jestli je číslo desetinné tak můžeš pouze naformátovat výstup, např. funkcí FloatToStr.

Každopádně nanapsal jsi sem jakého dat. typu jsou výsledky, na co tu úpravu potřebuješ. Tak dufám, že ti taková odpověď bude stačit.

Nahoru Odpovědět 30. ledna 20:21
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Dominik Hošic
Redaktor
Avatar
Dominik Hošic:
bool IsDecimal(float num)
{
    return (num - Math.Floor(num) != 0) ? true : false;
}

Syntaxi Delphi neznám, tak jsem použil C#, snad si to dokážeš přepsat.

Nahoru Odpovědět 30. ledna 20:49
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
Dominik Hošic
Redaktor
Avatar
Dominik Hošic:

A nebo jsem rovnou mohl taky napsat

bool IsDecimal(float num)
{
 return (num != Math.Floor(num)) ? true : false;
}

hehe :)

Nahoru Odpovědět 30. ledna 20:51
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
1Pupik1989
Člen
Avatar
Odpovídá na Dominik Hošic
1Pupik1989:

Nebo můžeš použít 2x vykřičník, aby se to porovnávalo jako boolean.

 
Nahoru Odpovědět 30. ledna 21:33
Avatar
tomgerzicak
Člen
Avatar
Odpovídá na Michal Haňáček
tomgerzicak:

Děkuji moc za pomoc, chápu váš úmysl, mohl bych se ještě zeptat na funkci v PASCALU, která zaokrouhlí nahoru vždy, i když je tam třeba 0.2? děkuji :)

 
Nahoru Odpovědět 30. ledna 21:55
Avatar
tomgerzicak
Člen
Avatar
tomgerzicak:

Děkuji, nakonec jsem to vyřešil nějak takto a funguje to :D

procedure vypisVysledky (var x1, x2:extended);
    begin
      if (Frac(x1) = 0) then
          Writeln('1. koren kvadratické rovnice je: ', x1:0:0)
      else
        writeln('1. koren kvadratické rovnice je: ', x1:0:2);

      if (Frac(x2) = 0) then
        Writeln('2. koren kvadratické rovnice je: ', x2:0:0)
      else
        writeln('2. koren kvadratické rovnice je: ', x2:0:2);
Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět 31. ledna 12:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.