在使用Ruby决策表将json / string属性分别转换为精度和小数位数(10,8)的十进制方面寻求帮助。
示例:
Input value:
Price : “000000045790000000”
需要将以上内容转换为
0000000457.90000000
任何建议都会很有帮助。预先感谢。
答案 0 :(得分:1)
转换:将输入调整为具有必要的零值并将点放置在所需位置:
convert = ->(num, prec, scale) {
num.rjust(prec + scale, '0').tap { |s| s[-scale...-scale] = '.' }
}
快速测试:
%w[0045790000000 000000045790000000].all? do |input|
'0000000457.90000000' == convert.(input, 10, 8)
end
#⇒ true
是否要从中浮现出来
convert.('000000045790000000', 10, 8).to_f # or #to_d
#⇒ 457.9