के लिए तैरता:हास्केल: सेना निम्नलिखित कोड का टुकड़ा का उपयोग करते हुए दो दशमलव
(fromIntegral 100)/10.00
हास्केल '98 मानक प्रस्तावना का उपयोग करना, कैसे मैं दो दशमलव के साथ परिणाम का प्रतिनिधित्व करते हैं?
धन्यवाद।
के लिए तैरता:हास्केल: सेना निम्नलिखित कोड का टुकड़ा का उपयोग करते हुए दो दशमलव
(fromIntegral 100)/10.00
हास्केल '98 मानक प्रस्तावना का उपयोग करना, कैसे मैं दो दशमलव के साथ परिणाम का प्रतिनिधित्व करते हैं?
धन्यवाद।
:
import Numeric
formatFloatN floatNum numOfDecimals = showFFloat (Just numOfDecimals) floatNum ""
आईएमओ यह उत्तर स्वीकार किया जाना चाहिए। –
@NikitaVolkov हो गया। देर आए दुरुस्त आए ;-) – Anders
आप Text.Printf
से printf :: PrintfType r => String -> r
उपयोग कर सकते हैं:
Prelude> import Text.Printf
Prelude Text.Printf> printf "%.2f\n" (100 :: Float)
100.00
Prelude Text.Printf> printf "%.2f\n" $ fromIntegral 100/10.00
10.00
%f
एक चल बिन्दु संख्या के रूप में दूसरा तर्क स्वरूपों। %.2f
इंगित करता है कि दशमलव बिंदु के पीछे केवल दो अंक मुद्रित किए जाने चाहिए। \n
एक नई लाइन का प्रतिनिधित्व करता है। यह इस उदाहरण के लिए कड़ाई से जरूरी नहीं है।
ध्यान दें कि यह फ़ंक्शन संदर्भ के आधार पर String
या IO a
का मान देता है। प्रदर्शन:
Prelude Text.Printf> printf "%.2f" (1337 :: Float) ++ " is a number"
"1337.00 is a number"
इस मामले printf
स्ट्रिंग "1337.00"
देता है, क्योंकि परिणाम (++)
लिए एक तर्क, एक समारोह को उम्मीद है कि सूची तर्क (ध्यान दें कि String
[Char]
के समान है) है जो के रूप में पारित कर दिया जाता है। इस प्रकार, printf
अन्य भाषाओं में sprintf
के रूप में भी व्यवहार करता है। बेशक एक चाल जो दूसरी स्ट्रिंग को जोड़ना आवश्यक नहीं है।
Prelude Text.Printf> printf "%.2f\n" (1337 :: Float) :: IO a
1337.00
Prelude Text.Printf> printf "%.2f\n" (1337 :: Float) :: String
"1337.00\n"
मैं प्रश्न दोबारा दोहरा दूंगा :-) मैं वास्तव में दो दशमलव के साथ एक फ्लोट का स्ट्रिंग प्रस्तुति वापस करना चाहता हूं - इसे stdout पर प्रिंट न करें। मुझे हास्केल में 'स्प्रिंटफ' फ़ंक्शन पर कुछ भी ठोस नहीं मिल रहा है जैसा कि मैंने आशा की थी। कोई संकेत? – Anders
अच्छा बिंदु। मैंने अपना जवाब अपडेट किया। – Stephan202
फिर फ्लोट प्रिंटिंग करने की कोशिश करें? –
यह एक स्ट्रिंग के रूप में प्रतिनिधित्व किया जा चाहिए था तुम बस स्पष्ट प्रकार निर्दिष्ट कर सकते हैं। अर्थात। 10.00। – Anders