2010-08-16 12 views
8

मैं इस तरह एक पूर्णांकन करते हैं और एक चरित्र के रूप में यह बदलने की आवश्यकता:"सुंदर गोल" कैसे बनाएं?

as.character(round(5.9999,2)) 

मैं इसे 6.00 बनने के लिए उम्मीद है, लेकिन यह सिर्फ मेरे 6

देता है कि मैं यह शो कर सकते हैं वहाँ वैसे भी है 6.00?

उत्तर

10

इनमें से किसी एक का प्रयास करें:

> sprintf("%3.2f", round(5.9999, digits=2)) 
[1] "6.00 
> sprintf("%3.2f", 5.999) # no round needed either 
[1] "6.00 

वहाँ भी formatC() और prettyNum() हैं।

2

मदद करने के लिए समझाने की क्या हो रहा है - round(5.9999, 2) कॉल निकटतम सैकड़ा जगह है, जो आप संख्या (नहीं स्ट्रिंग) बहुत के करीब (या वास्तव में करने के लिए बराबर देता है करने के लिए अपने नंबर गोलाई है, यदि आप चल के साथ जीत जाएं -पॉइंट प्रतिनिधित्व) 6.00। फिर as.character() उस संख्या को देखता है, इसमें पर्याप्त सटीकता के प्रतिनिधित्व के लिए 15 महत्वपूर्ण अंक (?as.character देखें) लेते हैं, और यह निर्धारित करता है कि केवल 1 महत्वपूर्ण अंक आवश्यक है। तो यही आपको मिलता है।

-1

जैसा कि Dirk इंगित किया गया है, formatC() एक और विकल्प है।

प्रारूप सी (x = 5.999, अंक = 2, प्रारूप = 'एफ')

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