对于整型值无效

问题描述 投票:2回答:4

此代码:

my_name = 'Alessandro Tegagni'
my_age = '31'
my_height = '170 '#cm
my_weight = '82 '#kg
my_eyes = 'Brown'
my_teeth = 'White'
my_hair = 'Brown'

puts "let is talk about %s." % my_name
puts "he is %d cm tall." % my_height
puts "he is %d kg heavy." % my_weight
puts "actually that is not too heavy."
puts "he is got %s eyes and %s hair." % [my_eyes,my_hair]
puts "his teeth are usually %s depending on the coffee or tea" % my_teeth

puts "if I add %d, %d, and %d I get %d." % [my_age,my_height,my_weight,my_age+my_height+my_weight]

引发错误:

:17:in `%': invalid value for Integer(): "31170 82 " (ArgumentError)

什么是错误?

ruby
4个回答
2
投票

问题是,您要定义的变量为字符串。并使用+对字符串连接它们,这是你与31170 82看到的。为了解决这个问题,将整数值指派给变量,而不是字符串:

my_name = 'Alessandro Tegagni'
my_age = 31
my_height = 170 #cm
my_weight = 82 #kg
my_eyes = 'Brown'
my_teeth = 'White'
my_hair = 'Brown'

这应该是足以让你的代码正常工作。


0
投票
my_age = 31
my_height = 170 #cm
my_weight = 82 #kg

https://ideone.com/KYWgJK

只是删除“”在你的int和一切工作正常。


0
投票

排队:

puts "if I add %d, %d, and %d I get %d." % [my_age,my_height,my_weight,my_age+my_height+my_weight]

字符串中的每个符号%d试图通过应用Integer()把它解释传递给它的参数。这适用于前三个参数,其可被解释为一个整数(my_agemy_heightmy_weight)。但与第四参数my_age + my_height + my_weight,该值是"31170 82 ",这不能被解释为整数。这是引发的错误。


0
投票

该错误是简单地告诉你,你想的东西是不是整数格式内的整数转换。

:17:在'%':为整数()无效值: “31170 82”(引发ArgumentError)

删除的空间将产生一个有效的整数,在这种情况下。

© www.soinside.com 2019 - 2024. All rights reserved.