gpt4 book ai didi

ruby-on-rails - 是否可以使用 Rails NumberHelper 方法模拟 sprintf ("%g") 的行为?

转载 作者:数据小太阳 更新时间:2023-10-29 08:41:55 25 4
gpt4 key购买 nike

sprintf("%g", [float]) 允许我在不指定精度的情况下格式化 float ,这样 10.00 就呈现为 10 10.01 呈现为 10.01,依此类推。这很整洁。

在我的应用程序中,我使用 Rails NumberHelper 方法呈现数字,以便我可以利用本地化功能,但我无法弄清楚如何通过这些助手实现上述功能,因为它们需要显式 :precision 选项。

有解决这个问题的简单方法吗?

最佳答案

为什么不直接使用 Ruby 的 Kernel::sprintf使用 NumberHelper?建议与 this syntax 一起使用: str % arg 其中 str 是格式字符串(%g 在你的例子中):


>> "%g" % 10.01
=> "10.01"
>> "%g" % 10
=> "10"

然后您可以使用 NumberHelper 只打印货币符号:


>> foo = ActionView::Base.new
>> foo.number_to_currency(0, :format => "%u") + "%g"%10.0
=> "$10"

并定义您自己的便捷方法:


def pretty_currency(val)
number_to_currency(0, :format => "%u") + "%g"%val
end

pretty_currency(10.0) # "$10"
pretty_currency(10.01) # "$10.01"

关于ruby-on-rails - 是否可以使用 Rails NumberHelper 方法模拟 sprintf ("%g") 的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com