1.0 -6ren">
gpt4 book ai didi

ruby 大十进制,小数点后有 2 个数字

转载 作者:数据小太阳 更新时间:2023-10-29 09:02:11 26 4
gpt4 key购买 nike

我这段代码:

require 'bigdecimal'
a = BigDecimal.new(1, 2)

虽然我们可以拥有这些值:

a.to_s #=> "0.1E1"
a.to_f #=> 1.0

我更愿意获得这个:a.to_string # => "1.00"

你知道吗Ruby's BigDecimal无需创建额外的#to_string 方法就能做到这一点?

如果不是,那么在小数点后始终保留 2 个数字的大十进制数的最佳解决方案是什么?

最佳答案

可以,但这是一种输出格式。

sprintf( "%.02f", a)
# => "1.00"

你可以这样定义一个方法:

class BigDecimal
def to_string
sprintf( "%.02f", self)
end
end

a.to_string
=> "1.00"

按照@CarySwoveland 的建议,你也可以这样写

sprintf( "%.02f" % a)
sprintf( "%.02f %.02f %.02f" % [a, b, c])

关于 ruby 大十进制,小数点后有 2 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847339/

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