給定用戶輸入的字符串,如果字符串是有效的int,我想將其轉換爲Fixnum
或Integer
。如果字符串是一個浮點數,我不想轉換爲int。如果失敗,我然後想嘗試將字符串轉換爲Float
。如果字符串不是這些中的任何一個,我打算提出異常。將字符串轉換爲Float或Fixnum
看來String#to_i
只是截斷了任何Float
的值,而不是提供任何類型的錯誤。我知道我可以做一些regexing來確定String
是否是一個有效的int,但是如果String
還有其他數字,應該有一些內置的轉換失敗。我錯過了什麼嗎?
例如。我想是這樣的失敗,而不是返回1
irb(main):092:0> "1.4".to_i
=> 1
irb(main):093:0> "1.4e5".to_i
=> 1
1.4e5是Ruby中的一個有效數字 - 您是否特別想要不使用簡寫的數字? –
@ChrisHeald我想嘗試將float轉換爲int來引發異常。我認爲薩瓦的答案是我需要的。 –