2011-09-15 11 views
5

मैं कुछ सरल समारोहदशमलव बिंदु के बाद 2 अंकों के साथ फ्लोट संख्या कैसे वापस करें?

f :: Float -> Float 
f x = x 

Prelude> f 5.00 
5.0 

क्यों 5.00 नहीं है? इसे कैसे प्राप्त किया जा सकता है?

+0

आप वास्तव में प्राप्त करने के लिए कोशिश कर रहे हैं। अपनी खोज को देखते हुए ऐसा लगता है कि आप फ़्लोटिंग पॉइंट नंबरों को समझ नहीं सकते हैं। – augustss

उत्तर

5

आप printf

printf "%.2f" (f :: Float) 
+0

जो, बहुत बहुत धन्यवाद! – Massimo

+0

उपरोक्त कोड कुछ त्रुटियों को फेंकता है ('वास्तविक प्रकार के फ्लोट -> फ़्लोट' के साथ अपेक्षित प्रकार फ़्लोट से मिलान नहीं हो सका)। इसलिए मैंने इसका इस्तेमाल किया: 'line n = printf"% .2f \ n "$ f n'। – Massimo

6

का उपयोग आप तो showGFloat का उपयोग base से कुछ चाहते हैं कर सकते हैं:

> import Numeric 
> showGFloat (Just 2) 1.99438 "" 
"1.99" 
> :t showGFloat 
showGFloat :: RealFloat a => Maybe Int -> a -> ShowS 
+0

धन्यवाद, यह उपयोगी था! – Massimo

संबंधित मुद्दे