# Sono nuovo ed ho un piccolo problema :) (ArgumentError)

**URL:** <https://www.ruby-forum.com/t/sono-nuovo-ed-ho-un-piccolo-problema-argumenterror/83311>\
**Category:** IT\
**Created:** [January 25, 2007, 1:19am UTC](https://www.ruby-forum.com/t/sono-nuovo-ed-ho-un-piccolo-problema-argumenterror/83311 "2007-01-25T01:19:13Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![killerfox](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/aca169/32.png) [@killerfox](https://www.ruby-forum.com/u/killerfox)\
**Post date:** [January 25, 2007, 1:19am UTC](https://www.ruby-forum.com/t/sono-nuovo-ed-ho-un-piccolo-problema-argumenterror/83311/1 "2007-01-25T01:19:13Z")

</div>

Ciao a tutti, sto iniziando ad avvicinarmi a Ruby ma non riesco a capire  
perchè questa piccola porzione di codice non funziona…

number = gets  
if number \> 10  
puts “Try again”  
elsif number == 3  
puts “You lose”  
else  
puts “Enter a number”  
end

Mi da sempre questo errore :  
‘\>’ : comparison of String with 10 failed

Inizio proprio bene…

---

<div class="post-metadata">

**Author:** ![killerfox](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/aca169/32.png) [@killerfox](https://www.ruby-forum.com/u/killerfox)\
**Post date:** [January 25, 2007, 1:42am UTC](https://www.ruby-forum.com/t/sono-nuovo-ed-ho-un-piccolo-problema-argumenterror/83311/2 "2007-01-25T01:42:16Z")

</div>

On Thursday 25 January 2007 01:18, Daniele V. wrote:

> end
> 
> Mi da sempre questo errore :  
> ‘\>’ : comparison of String with 10 failed
> 
> Inizio proprio bene…

Il problema è che “gets” restituisce un oggetto di tipo “String” (te ne  
puoi  
accorgere mettendo un “puts number.class” dopo la gets), mentre “\>” è un  
metodo della classe Fixnum…

Per usare ‘number’ come un numero devi fare un cast di ciò che prende gets  
tramite il metodo to\_i:

number = gets.to\_i  
if number \> 10  
puts “try again”  
elsif number == 3  
puts “You lose”  
else  
puts “Enter a number”  
end

---

<div class="post-metadata">

**Author:** ![killerfox](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/aca169/32.png) [@killerfox](https://www.ruby-forum.com/u/killerfox)\
**Post date:** [January 25, 2007, 1:45am UTC](https://www.ruby-forum.com/t/sono-nuovo-ed-ho-un-piccolo-problema-argumenterror/83311/3 "2007-01-25T01:45:16Z")

</div>

On 1/24/07, Daniele V. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Ciao a tutti, sto iniziando ad avvicinarmi a Ruby ma non riesco a capire perchè questa piccola porzione di codice non funziona…
> 
> number = gets  
> if number \> 10  
> puts “Try again”  
> elsif number == 3  
> puts “You lose”  
> else  
> puts “Enter a number”  
> end

Ciao Daniele,

gets ti restituisce il valore inserito dall’utente come stringa (e con  
\n alla fine). Per cui ruby si lamenta del fatto che stai confrontando  
una stringa con un numero intero (come confrontare “12\n” e 10).

Usa:  
numbers = gets.to\_i

Questo converte la stringa ad un numero intero. Ti consiglio anche di  
usare irb per provare codice e ri per la documentazione dei vari  
metodi.

Ciao,  
Antonio

## PS: più in generale, per rimuovere il carattere di ritorno a capo da una stringa, puoi usare il metodo chomp.

> **[Antonio Cangiano](https://antoniocangiano.com)**
>
> This is the homepage of Antonio Cangiano, a Software Development Manager at IBM, published author, web entrepreneur, and certified nutritionist.

Zen and the Art of Ruby P.ming  
[http://effettofarfalla.com](http://effettofarfalla.com)  
Il battito d’ali di un italiano a Toronto

---

<div class="post-metadata">

**Author:** ![killerfox](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/aca169/32.png) [@killerfox](https://www.ruby-forum.com/u/killerfox)\
**Post date:** [January 25, 2007, 10:42am UTC](https://www.ruby-forum.com/t/sono-nuovo-ed-ho-un-piccolo-problema-argumenterror/83311/4 "2007-01-25T10:42:10Z")

</div>

> end
> 
> Mi da sempre questo errore :  
> ‘\>’ : comparison of String with 10 failed

number è un oggetto di classe String. Per confrontarlo con 10 fai  
number.to\_i \> 10.

---

<div class="post-metadata">

**Author:** ![killerfox](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/aca169/32.png) [@killerfox](https://www.ruby-forum.com/u/killerfox)\
**Post date:** [January 25, 2007, 1:53am UTC](https://www.ruby-forum.com/t/sono-nuovo-ed-ho-un-piccolo-problema-argumenterror/83311/5 "2007-01-25T01:53:17Z")

</div>

On 1/24/07, Francesco P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> mentre “\>” è un metodo della classe Fixnum…

Ad essere precisi, il primo oggetto ad essere confrontato è di tipo String  
per cui “\>” si aspetta un secondo argomento di tipo confrontabile con  
String  
(e Fixnum chiaramente non lo è). Per cui Ruby solleva ArgumentError perché  
la stringa non può essere confrontata con il numero 10.

## Ciao, Antonio

> **[Antonio Cangiano](https://antoniocangiano.com)**
>
> This is the homepage of Antonio Cangiano, a Software Development Manager at IBM, published author, web entrepreneur, and certified nutritionist.

Zen and the Art of Ruby P.ming  
[http://effettofarfalla.com](http://effettofarfalla.com)  
Il battito d’ali di un italiano a Toronto

---

<div class="post-metadata">

**Author:** ![killerfox](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/aca169/32.png) [@killerfox](https://www.ruby-forum.com/u/killerfox)\
**Post date:** [January 25, 2007, 1:10pm UTC](https://www.ruby-forum.com/t/sono-nuovo-ed-ho-un-piccolo-problema-argumenterror/83311/6 "2007-01-25T13:10:28Z")

</div>

Grazie, ora funziona 😉
