gpt4 book ai didi

ruby - 修剪尾随 .0

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:58 27 4
gpt4 key购买 nike

我有一个包含零件号的 Excel 列。这是一个示例

如您所见,它可以是许多不同的数据类型:FloatIntString。我正在使用 roo gem 来读取文件。问题是 roo 将整数单元格解释为 Float,向它们添加尾随零 (16431 => 16431.0)。我想修剪这个尾随零。我不能使用 to_i 因为它会修剪所有需要小数的单元格的尾随数字(上例中的第一行),并且会在 中的字符串 char 之后剪切所有内容String 行(上例中的最后一行)。

目前,我有一种方法可以检查单元格的最后两个字符,如果它们是“.0”则将其修剪

def trim(row)
if row[0].to_s[-2..-1] == ".0"
row[0] = row[0].to_s[0..-3]
end
end

这行得通,但感觉很糟糕而且很老套。将我的 Excel 文件内容放入 Ruby 数据结构的正确方法是什么?

最佳答案

def trim num
i, f = num.to_i, num.to_f
i == f ? i : f
end

trim(2.5) # => 2.5
trim(23) # => 23

或者,从字符串:

def convert x
Float(x)
i, f = x.to_i, x.to_f
i == f ? i : f
rescue ArgumentError
x
end

convert("fjf") # => "fjf"
convert("2.5") # => 2.5
convert("23") # => 23
convert("2.0") # => 2
convert("1.00") # => 1
convert("1.10") # => 1.1

关于ruby - 修剪尾随 .0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533026/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com