例如,
如果我有24987654,我需要它返回24000000,这可能吗?
这里是一种幼稚算法:
n = 24987654
n / (10 ** (n.to_s.size - 2)) * (10 ** (n.to_s.size - 2)
=> 24000000
这里是另一种方式:
x -= x % (10 ** (Math.log(x, 10).to_i - 1))
在以上声明中:
Math.log(x, 10).to_i - 1
确定要删除的无关位数x % (10 ** number_of_insignificant_digits)
计算数字的不重要部分x
包含结果这里是该程序的在线测试:http://ideone.com/trSNOr
另一种方式:
n = 24987654
a = n.to_s[0, 2] + '0' * ((a.to_s.length)-2)
将输出字符串:
=> "24000000"
您可以将其转换为调用.to_i
方法的整数
n = 24987654
n.round((n.to_s.size - 2)*-1) #=> 25000000
n.ceil((n.to_s.size - 2)*-1) #=> 25000000
n.floor((n.to_s.size - 2)*-1) #=> 24000000
n = 24187654
n.round((n.to_s.size - 2)*-1) #=> 24000000
n.ceil((n.to_s.size - 2)*-1) #=> 25000000
n.floor((n.to_s.size - 2)*-1) #=> 24000000