Jeśli chcesz wykonać podział ułamkową, można konwertować z dowolnego Integral
typu przy użyciu fromIntegral
lub fromInteger
do konwertowania tylko z Integer
specjalnie.
Istnieją podobne funkcje odnoszące się do innych klas typ liczbowy: toRational
, fromRational
, realToFrac
, itd. I oczywiście można konwertować typy ułamkowych z powrotem do integralnych typach korzystających round
, floor
, ceiling
lub takie.
I wreszcie, na off szansa, że faktycznie chciał całkowitą podział, zamiast podziału frakcyjnej z zaokrągleniem potem, nie ma funkcji div
i quot
(w zależności od tego, co chcesz obcięcia zachowanie).
Ponadto, prawdopodobnie powinieneś napisać swoją funkcję jako coś w rodzaju posToXY a b = round $ a/b
. Niepotrzebne do
i wiele linii utrudnia czytanie.
Zobacz również http://stackoverflow.com/questions/1397210/haskell-converting-float-to-int –
A także http: //stackoverflow.com/questions/3275193/whats-the-right-way-to-divide-two-values-to-obtain-a-float –