web-dev-qa-db-ja.com

Juliaで補間するときに、文字列をどのようにフォーマットしますか?

Python 3、私は

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

または

print_me = f"Look at this significant figure formatted number: {floating_point_number:.2f}!"
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

Juliaに表示する小数点以下の桁数を制限するにはどうすればよいですか?私の知る限り、印刷する文字列の必要なストレージは、@printfマクロの使用を除外していることに注意してください。

これは機能しますが、スタイル的には正しくないようです。

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

標準ライブラリパッケージPrintf@sprintfマクロを使用できます。これは、単に@printfとして出力するのではなく、文字列を返します。

using 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
20
niczky12

@ 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 
11
Daniel Arndt

それはまだ進行中の作業ですが(単体テストをたくさん追加する必要があり、Python 3.6スタイルモード)を追加したいのですが、私の StringUtils .jl パッケージ。CとPythonフォーマットのように、Swiftスタイルの補間、絵文字、LaTex、HtmlおよびUnicodeの名前付き文字を文字列リテラルに追加します。

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
2
Scott Jones