在Ruby中将Fixnum转换为word

在Ruby中将Fixnum转换为word,ruby,Ruby,由于某些原因,我的代码没有显示任何内容。它应该显示“一”。你知道为什么不是吗 ## write function that takes a number ## check length of number ## if length is one ## conditional statements for each ones digit def nums_to_words(num) length = num.to_s.length string = length.to_s

由于某些原因,我的代码没有显示任何内容。它应该显示
“一”
。你知道为什么不是吗

## write function that takes a number
## check length of number
## if length is one
## conditional statements for each ones digit

def nums_to_words(num)
    length = num.to_s.length
    string = length.to_s

    if string.length < 2
        elsif string[0] == '1'
            puts 'one'
        elsif string[0] == '2'
            puts 'two'
        elsif string[0] == '3'
            puts 'three'
        elsif string[0] == '4'
            puts 'four'
        elsif string[0] == '5'
            puts 'five'
        elsif string[0] == '6'
            puts 'six'
        elsif string[0] == '7'
            puts 'seven'
        elsif string[0] == '8'
            puts 'eight'
        elsif string[0] == '9'
            puts 'nine'
    end
end


nums_to_words(1)
##编写接受数字的函数
##检查数字的长度
##如果长度是一
##每个一位数的条件语句
def nums_到_单词(num)
长度=num.to_.length
字符串=length.to_
如果string.length<2
elsif字符串[0]==“1”
放‘一’
elsif字符串[0]==“2”
放‘二’
elsif字符串[0]==“3”
“三”
elsif字符串[0]==“4”
放‘四’
elsif字符串[0]=“5”
放‘五’
elsif字符串[0]==“6”
放‘六’
elsif字符串[0]==“7”
放‘七’
elsif字符串[0]=“8”
放‘八’
elsif字符串[0]==“9”
放‘九’
终止
终止
nums_至_单词(1)

以下是正确答案:

def nums_to_words(num)
    length = num.to_s.length
    num = num.to_s

    if num.length < 2
        if num[0] == '1'
            puts 'one'
        elsif num[0] == '2'
            puts 'two'
        elsif num[0] == '3'
            puts 'three'
        elsif num[0] == '4'
            puts 'four'
        elsif num[0] == '5'
            puts 'five'
        elsif num[0] == '6'
            puts 'six'
        elsif num[0] == '7'
            puts 'seven'
        elsif num[0] == '8'
            puts 'eight'
        elsif num[0] == '9'
            puts 'nine'
        end
    end
end


nums_to_words(3)
def nums到单词(num)
长度=num.to_.length
num=num.to\u s
如果num.length<2
如果num[0]=“1”
放‘一’
elsif num[0]==“2”
放‘二’
elsif num[0]=“3”
“三”
elsif num[0]=“4”
放‘四’
elsif num[0]=“5”
放‘五’
elsif num[0]=“6”
放‘六’
elsif num[0]=“7”
放‘七’
elsif num[0]=“8”
放‘八’
elsif num[0]==“9”
放‘九’
终止
终止
终止
nums_to_单词(3)
这个怎么办:

NUMBERS = [ 'zero', 'one' 'two', 'three', 'four', 'five', 'six', 'seven', 'eigth', 'nine' ]
def nums_to_words(num)
  str = num.to_s
  if str.size == 1
    puts NUMBERS[str.to_i]
  end
end

不,它不应该显示任何东西。我想你知道我的意思,@Alexey:pI的意思是你说的不是真的。“计算机不做用户想做的事,它做用户让它做的事”:。我喜欢这种方法!谢谢,我正在努力实现这一点,但似乎缺少了一个步骤。数字常量是如何与函数联系在一起的?@DylanRichards:你是对的,我忘了对方法中的常量进行升格。现在修好了。