我有一个小数点后有八位数的浮点数。我想将其转换为整数/整数,保持小数点后的数字。例如:我的浮点数为0.06870697
,我希望它为006870697
。
到目前为止,我尝试过的所有内容都会删除小数点后的所有数字。
答案 0 :(得分:3)
只需将其相乘以移动数字,然后使用printf
式格式化程序:
v = 0.06870697
'%09d' % (v * 10e7)
# => "006870697"
将值乘以10e7
(10 x 10 7 = 10 8 )将小数位八位移到右侧。
答案 1 :(得分:2)
不像tadman那样优雅但是以下版本似乎有效 - ))
1
a = 0.06870697
a.to_s.split(".").join("")
2
a.to_s.gsub(/[^\d]/, '')
3
a.to_s.slice! "."
答案 2 :(得分:2)
以下解决方案是解决问题中的数字问题。你可以这样做。
value = 0.06870697
value.to_s.delete('.')
=> "006870697"
答案 3 :(得分:0)
又一个选择:
val = 0.06870697
num = (val * 10 ** 8).to_i.to_s
num.rjust(9, '0')
=> "006870697"
答案 4 :(得分:0)
您可以通过乘以10^8
将小数点向右移八位数。
(0.06870697 * 10 ** 8).to_i
# => 6870697