1 / 3
May 2007

I opened this thread for posting solutions to problems, an explanation of the algorithms would be enough

  • created

    Apr '07
  • last reply

    Oct '14
  • 2

    replies

  • 1.5k

    views

  • 3

    users

  • 1

    link

5 years later

Dzięki za info. No trudno. Ale jakby ktoś chciał szukać, to wiem, że da się obliczyć np. wartość 1/7 do mnóstwa cyfr po przecinku i to tylko w powiedzmy 30 znaków (albo nawet i mniej).

2 years later

Wracając do tego tematu - chodzi raczej o wypisywanie liczb rzeczywistych z dużą precyzją a nie o samo zaokrąglanie jako takie. Jedna z możliwości:
Jeżeli ktoś używa u siebie haskella to musi doinstalować pakiet "numbers". Poniżej jest link do krótkiego opisu.
stackoverflow.com/questions/1679 ... 6#168026961
Niestety, na spoju nie ma zainstalowanego tego pakietu [numbers], ale być może mając źródła "Data.Numbers.CReal", które są ogólnie dostępne, można po prostu wkleić te źródła do swojego programu w haskell'u. Jeszcze tego nie robiłem.
Na razie zainstalowałem u siebie tą bibliotekę i poniżej take przykładowe wyniki w ghci [interaktywnym środowisku haskell'a] na moim notbooku:

Prelude> import Data.Number.CReal
Prelude Data.Number.CReal> putStrLn (showCReal 100 (sqrt 2))
1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
Prelude Data.Number.CReal> putStrLn (showCReal 102 pi)
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982
Prelude Data.Number.CReal> putStrLn (showCReal 99 (1/6))
0.166666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667
Prelude Data.Number.CReal> putStrLn (showCReal 99 (1/3))
0.333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333