浮点数到十进制后保持数字的整数

时间:2018-02-22 21:36:09

标签: ruby

我有一个小数点后有八位数的浮点数。我想将其转换为整数/整数,保持小数点后的数字。例如:我的浮点数为0.06870697,我希望它为006870697

到目前为止,我尝试过的所有内容都会删除小数点后的所有数字。

5 个答案:

答案 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
相关问题