2016-05-04 7 views
5

अजगर 3 में, मैंजूलिया में इंटरपोलेट करते समय आप स्ट्रिंग को कैसे प्रारूपित करते हैं?

print_me = "Look at this significant figure formatted number: {:.2f}!".format(floating_point_number) 
print(print_me) 

जूलिया

print_me = "Look at this significant figure formatted number: $floating_point_number" 
print(print_me) 

में लेकिन यह लाभ होगा कहेंगे

Look at this significant figure formatted number: 61.61616161616161 

मैं कैसे जूलिया दशमलव स्थानों की संख्या सीमित करने के लिए यह प्रदर्शित करता है मिलता है ? ध्यान दें कि स्ट्रिंग के आवश्यक भंडारण को मेरे ज्ञान के लिए @printf मैक्रो का उपयोग करके नियमों का पालन करना है।

यह काम करता है, लेकिन स्टाइलिस्टिक रूप से सही नहीं लगता है।

floating_point_number = round(floating_point_number,2) 
print_me = "Look at this significant figure formatted number: $floating_point_number" 
print(print_me) 

उत्तर

11

आप @sprintf मैक्रो का उपयोग कर सकते हैं। यह इसे @printf के रूप में प्रिंट करने के बजाय एक स्ट्रिंग देता है।

x = 1.77715 
print("I'm long: $x, but I'm alright: $(@sprintf("%.2f", x))") 

आउटपुट:

I'm long: 1.77715, but I'm alright: 1.78 
4

इसके अलावा @ niczky12 के जवाब देने के लिए आप भी Formatting पैकेज बात के इस प्रकार के लिए ठीक तैयार किया गया है का उपयोग कर सकते हैं!

Pkg.add("Formatting") 
using Formatting: printfmt 
x = 1.77715 
printfmt("I'm long: $x, but I'm alright: {:.2f}", x) 

आउटपुट:

I'm long: 1.77715, but I'm alright: 1.78 
2

यद्यपि यह कार्य प्रगति पर (मैं इकाई परीक्षण का एक समूह जोड़ने की जरूरत है, और मैं एक अजगर 3.6 शैली मोड जोड़ना चाहते हैं) है, तो आप भी कर सकते थे मेरे StringUtils.jl पैकेज का उपयोग करें, जो सी और पायथन को फॉर्मेटिंग, स्विफ्ट स्टाइल इंटरपोलेशन, इमोजी, लाटेक्स, और एचटीएमएल और यूनिकोड नामक वर्णों को स्ट्रिंग करने के लिए वर्णित करता है।

Pkg.clone("https://github.com/ScottPJones/StringUtils.jl") 
Pkg.checkout("StringUtils") 

using StringUtils 

x = 1.77715 
print(u"I'm long: \(x), but I'm alright: \%.2f(x)") 

आउटपुट:

I'm long: 1.77715, but I'm alright: 1.78 
संबंधित मुद्दे