2016-05-04 13 views
5

, benJulia'da arandığında bir dizeyi nasıl biçimlendirirsiniz? Python 3

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

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

yılında

ama bu doğuracak nasıl Julia görüntülediği ondalık basamak sayısını kısıtlamak alırım

Look at this significant figure formatted number: 61.61616161616161 

söyleyebilirim ? Yazdırılacak olan dizgenin gerekli bilgilerinin, @printf makrosunu kullanarak kurallara aykırı olduğunu unutmayın.

Bu çalışır, ancak stilistik olarak doğru görünmüyor.

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

cevap

11

@sprintf makrosunu kullanabilirsiniz. Bu, @printf olarak yazdırmak yerine bir dize döndürür.

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

Çıktı:

Ayrıca
I'm long: 1.77715, but I'm alright: 1.78 
4

@ niczky12 cevabı da bu tür bir şey için hassas olarak tasarlanmış Formatting paketini kullanabilirsiniz!

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

Çıktı:

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

o devam eden bir çalışmadır (I birim bir sürü test eklemek gerekir ve ben bir Python 3.6 tarzı modunu eklemek istediğiniz) hala olsa da, aynı zamanda olabilir C ve Python gibi biçimlendirme, Swift stili enterpolasyonu, Emoji, LaTex ve Html ve Unicode adlı karakterleri eklediğimiz StringUtils.jl paketimi kullanıyorum.

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)") 

Çıktı:

I'm long: 1.77715, but I'm alright: 1.78 
İlgili konular