Přejít na obsah


Fotka

Jak přetypuji výraz


  • Pokud chcete vložit odpověď, přihlašte se
5 odpovědí na toto téma

#1 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 809 příspěvků(y)

Publikováno 17 srpen 2024 - 16:35

mám výraz

Value:=(varA mod 10000 - varA mod 1000) / 100

kde Value je typu extended a varA je typu integer a mě se do value vypočte pouze celá část bez desetiných míst, která by měla vzniknout tím dělením 100, jak tedy docílím toho, aby se výraz už počítal jako extended a né jako integer


  • 0

#2 mikrom

mikrom

    Advanced Member

  • Members
  • PipPipPip
  • 1 969 příspěvků(y)

Publikováno 18 srpen 2024 - 10:18

No ChatGPT říká:

 

V Pascalu (nebo Delphi) provádí operace mezi celými čísly výpočet také jako celé číslo, takže při dělení ztratíte desetinnou část. Aby výsledek byl typu Extended, musíte zajistit, že alespoň jedna z hodnot v operaci je typu Extended.

Můžete toho dosáhnout konverzí proměnných nebo konstant na typ Extended pomocí funkce Extended() nebo jednoduše přidáním desetinné části.

Změňte svůj výraz takto:

Value := (varA mod 10000 - varA mod 1000) / 100.0;
Tímto způsobem zajistíte, že výsledek dělení bude typu Extended a ne Integer.

 


  • 0

#3 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 809 příspěvků(y)

Publikováno 18 srpen 2024 - 13:12

Díky, na umělou inteligenci jsem si nevzpomněl


  • 0

#4 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 14 534 příspěvků(y)

Publikováno 18 srpen 2024 - 17:15

Skriptovaci jazyk ma některé zákonitosti jinak, než v normálním překladači Pascalu, na to občas bacha! Takže kdyby to náhodou nepomohlo, zkus ještě:

 

Value := extended(varA mod 10000 - varA mod 1000) / 100.0;


  • 0

#5 Kreten8

Kreten8

    Advanced Member

  • Members
  • PipPipPip
  • 1 809 příspěvků(y)

Publikováno 19 srpen 2024 - 15:31

Díky, v popisu funkcí na stránce geogetu ta funce extended() není, jinak bych jí býval zkusil


  • 0

#6 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 14 534 příspěvků(y)

Publikováno 20 srpen 2024 - 7:15

To taky není funkce, ale tvrdé přetypování. Můžeš tam naspat jakýkoliv jiný název datového typu, pokud to dává smysl. Třeba string na integer takhle nepřevedeš.


  • 0




1 uživatel(ů) prochází toto téma

0 uživatelů, 1 návštěvníků 0 anonymních uživatelů

Reklama