Tag: decimal

最长的循环数字

我试图找到小于1000的数字,当它除以1时产生最长的重复数字串。我有一个十进制数列表,必须找到具有最长重复序列的数字。 这是我到目前为止所拥有的 numbers = [*2..999] decimal_representations = numbers.map { |number| 1.to_f/number } decimal_representations.map!(&:to_s) 我可以使用正则表达式生成三维数组。 Regex /(.+)\1+/产生一系列重复的子串。 我想找到最长的子字符串,所以我使用了enumerable的max_by函数。 decimal_representations.map! { |decimal| decimal.scan(/(.+)\1+/).max_by(&:length) }.flatten 我必须压缩我的数组以删除nil元素 decimal_representations.compact! 然后我可以找出哪个长度最长。 decimal_representations.max_by(&:length) 我得到0090009009 ,但我无法弄清楚哪个数字具有该十进制值,因为我从数组中删除了nil元素。 有任何想法吗?

Ruby on Rails模型。 为什么范围为1的十进制{2,1}允许小数点后的数字?

尽管定义了它的精度和范围,但是在小数点后接受过多位数的表存在问题。 rails generate model Hotel name:string ‘rating:decimal{2,1}’ class CreateHotels < ActiveRecord::Migration def change create_table :hotels do |t| t.string :name t.decimal :rating, precision: 2, scale: 1 t.timestamps end end end 但是,我能够做到以下几点。 Hotel.create!(name: “The Holiday Inn”, rating: 3.75) 另外,我有一个房间桌(房间模型),有 t.decimal :rate, precision: 5, scale: 2 #this holds the room’s nightly rate 我在这列中输入了99.99,但最终将其存储为99.98999999 .. 为什么我有这两个小数问题? 如果我已经定义了我的范围,为什么我可以输入比我定义的范围更多的范围?