"103" => true 2.1.1 :006 > "11" false 为什么会这样-6ren">
gpt4 book ai didi

ruby-on-rails - 在ruby中排序数字字符串

转载 作者:数据小太阳 更新时间:2023-10-29 07:45:05 25 4
gpt4 key购买 nike

我有两个不同长度的数字:

“103”“11”

在 irb 中:

2.1.1 :005 > "11" > "103"
=> true
2.1.1 :006 > "11" < "103"
=> false

为什么会这样?我知道我可以为每个字符串设置一个 .to_i,但是如果这是一个列类型为字符串的 Rails 查询,我能做些什么吗?

最佳答案

字符串已排序 lexicographically这意味着“1”在“0”之后,“103”在“11”之前,“1122344”之前,“1abc”之前。

您不能像比较数字一样比较字符串,您需要先将它们解析为数字。

我能想到的唯一方法是确保在将它们变成字符串之前用足够的零填充它们:"000103", "000011"...

关于ruby-on-rails - 在ruby中排序数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23205211/

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