Se si desidera eseguire la divisione frazionaria, è possibile convertire da qualsiasi tipo Integral
utilizzando fromIntegral
, o fromInteger
per convertire solo da Integer
in particolare.
ci sono funzioni simili relativi ad altre classi di tipo numerico: toRational
, fromRational
, realToFrac
, ecc E, naturalmente, è possibile convertire i tipi frazionali di nuovo a tipi interi che utilizzano round
, floor
, ceiling
, o tali.
E, infine, sulla remota possibilità che in realtà voleva intero divisione, invece di divisione frazionaria con arrotondamento poi, ci sono i div
e quot
funzioni (a seconda di quale comportamento troncamento che si desidera).
Inoltre, probabilmente dovresti scrivere la tua funzione come qualcosa come posToXY a b = round $ a/b
. L'inutile do
e più righe rende più difficile la lettura.
fonte
2010-10-19 13:21:04
Vedi anche http://stackoverflow.com/questions/1397210/haskell-converting-float-to-int –
E anche http: //stackoverflow.com/questions/3275193/whats-the-right-way-to-divide-two-int-values-to-obtain-a- float –