【问题标题】:How do you format a string when interpolated in Julia?在 Julia 中插值时如何格式化字符串?
【发布时间】:2016-08-30 02:13:06
【问题描述】:

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

【问题讨论】:

    标签: julia


    【解决方案1】:

    您可以使用标准库包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
    

    【讨论】:

    • 根据我的经验,在 Julia 1.0.0 REPL 中,您必须在使用 @sprintf 宏之前添加:使用 Printf。
    • 谢谢!我更改答案以反映 1.0 的更改。
    • 感谢您更新您接受的答案。它将帮助 Julia 的新手,他们可能不知道 @sprintf 宏未内置于核心 Julia 语言中。我自己刚刚在 1.0.0 时来到 Julia,并假设您之前展示的 Julia 代码适用于早期版本的 Julia。
    【解决方案2】:

    除了@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 
    

    【讨论】:

      【解决方案3】:

      虽然它仍在进行中(我需要添加一堆单元测试,并且我想添加 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
      

      【讨论】:

        猜你喜欢
        • 2022-07-05
        • 1970-01-01
        • 1970-01-01
        • 2016-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多