Jak přetypuji výraz

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

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.

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

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;

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

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š.