如何在Ruby中将JSON /字符串属性转换为具有精度和小数位数的十进制数字

时间:2019-04-02 06:32:26

标签: ruby

在使用Ruby决策表将json / string属性分别转换为精度和小数位数(10,8)的十进制方面寻求帮助。

示例:

Input value:
Price : “000000045790000000”

需要将以上内容转换为

0000000457.90000000 

任何建议都会很有帮助。预先感谢。

1 个答案:

答案 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