(à partir de hier: http://bluebones.net/2007/02/formatting-decimals-in-haskell/)
Mise en forme des nombres décimaux en Haskell
A formatt Pour passer de numéros comme 333999333.33 à "333,999,999.33" dans Haskell. Copes avec des nombres négatifs et des tours à 2 dp (facile d'ajouter un paramètre pour cela si vous le souhaitez).
Exemples:
* principal> formatDecimal 44
"44,00"
* Menu principal> formatDecimal 94.280.943,4324
"94,280,943.43"
* principal> formatDecimal (-89438,329)
"-89,438.33"
import Data.Graph.Inductive.Query.Monad (mapFst)
import List
import Text.Printf
formatDecimal d
| d < 0.0 = "-" ++ (formatPositiveDecimal (-d))
| otherwise = formatPositiveDecimal d
where formatPositiveDecimal = uncurry (++) . mapFst addCommas . span (/= '.') . printf "%0.2f"
addCommas = reverse . concat . intersperse "," . unfoldr splitIntoBlocksOfThree . reverse
splitIntoBlocksOfThree l = case splitAt 3 l of ([], _) -> Nothing; p-> Just p
++ Pour demander une bibliothèque et non une fonction. –
Ceci est probablement lié: http: // stackoverflow.com/questions/1388209/comment-formater-nombres-selon-locale-dans-haskell (comment formater les nombres selon les paramètres régionaux) – sastanin
Si la bibliothèque n'existe pas alors vous devriez l'utiliser comme une bonne excuse pour écrire votre premier paquet Haskell Cabal. –