Bir değişkenin Ruby'de bir sayı mı, yoksa bir dizge olup olmadığını nasıl kontrol edebilirim?Bir değişkenin bir sayı mı, yoksa bir sayı mı olduğunu nasıl kontrol edebilirim?
cevap
birkaç yolu vardır:
>> 1.class #=> Fixnum
>> "foo".class #=> String
>> 1.is_a? NumeriC#=> true
>> "foo".is_a? String #=> true
var.is_a? String
var.is_a? Numeric
Bu, * değişkeninin * bir sayı olup olmadığını kontrol etmez, * değişkeninin * bir sayı olup olmadığını kontrol eder. İkisi arasında büyük bir fark var. –
@ Jörg: Bence OP'nin ne istediği oldukça açık, bu durumda akılcı olmaya gerek yok. –
onun sınıfını yazdır, bu değişkenin türü (örn Dize veya Numarası) olan gösterecektir.
ör .:
puts varName.class
Bu, * değişkeninin * bir sayı olup olmadığını kontrol etmez, * değişkeninin * bir sayı olup olmadığını kontrol eder. İkisi arasında büyük bir fark var. –
class Object
def is_number?
self.to_f.to_s == self.to_s || self.to_i.to_s == self.to_s
end
end
> 15.is_number?
=> true
> 15.0.is_number?
=> true
> '15'.is_number?
=> true
> '15.0'.is_number?
=> true
> 'String'.is_number?
=> false
Bu benim için çalıştı nerede .is_a? Sayısal değil. Bir CSV dosyasından çıkarılan bir alanın bir sayı olup olmadığını kontrol ettim, bu nedenle "Sayısal" ile karşılaştırılamıyor çünkü aslında bir sayı olduğu da bir dizedir. –
Bu, "15.10", "015" veya "15.33333333333333333" gibi birkaç durumda başarısız olur. –
is_number için aşağıdaki tanım? Andrew'in endişelerini yayar: def is_number? (metin) !! (/^[- +]? [0-9] * \.? [0-9] + ([eE] [- +]? [0-9 ] +)? $/= ~ text) end –
finishing_moves
gem bu çok görevi yerine getirmek için bir String#numeric?
yöntemi de içerir. Yaklaşım, sadece paketlenmiş olan installero'nun cevabı ile aynıdır.
"1.2".numeric?
#=> true
"1.2e34".numeric?
#=> true
"1.2.3".numeric?
#=> false
"a".numeric?
#=> false
if chr.to_i != 0
puts "It is number, yep"
end
Ya chr '' 0 '' ise? –
Lütfen cevabınıza açıklamaları ekleyin. –
- 1. Değişkenin bir sayı olduğunu kontrol edin
- 2. Bir değerin sayı olup olmadığını nasıl kontrol edebilirim?
- 3. Bir dosyanın python'da bir dizin mi yoksa normal dosya mı olduğunu nasıl kontrol edersiniz?
- 4. Gözlemlenebilir bir sıcak mı yoksa soğuk mu olduğunu kontrol etmek için bir yol var mı?
- 5. Dize bir sayı olup olmadığını kontrol edin
- 6. Bir değerin fasülye iddialarında negatif bir sayı olmadığını nasıl kontrol edebilirim?
- 7. Twig - Değişken bir sayı/tamsayı olup olmadığını nasıl kontrol edilir
- 8. Ruby'de herhangi bir sayı biçimlendirme sınıfı var mı?
- 9. Bir sayı karesi bulma
- 10. C#: Bir nesnenin özel bir sınıf mı yoksa yerel tür/.NET sınıfı mı olduğunu nasıl anlarsınız?
- 11. Kontrol 120 kadar bir sayı asal
- 12. IJVM'de bir sayı nasıl reddedilir?
- 13. bir sayı Python aralığında
- 14. Dizginin sayı ile bitip bitmediğini kontrol edin ve doğruysa, sayı
- 15. Karmaşık bir sayı belirleme
- 16. bir rastgele sayı üreteci
- 17. Verilog'da bir sayı nasıl imzalanır
- 18. Bir denetleyicinin posta kullanılarak mı çağırılacağını nasıl kontrol edebilirim?
- 19. Bir sayı eksi sonsuz sınırsız
- 20. rastgele bir sayı
- 21. Bir sayı yapın Yüzde
- 22. Belirli bir sayı dizisini
- 23. Bir sayı değişkeni
- 24. Enum ToString bir sayı
- 25. Sayı
- 26. "ANR" bir istisna mı, yoksa bir hata mı?
- 27. Bir javascript nesnesinin bir Resim mi yoksa bir Canvas mı olduğunu nasıl anlarım?
- 28. Sınıfın bir iç sınıf mı yoksa kullanıcı sınıfı mı olduğunu nasıl anlarsınız?
- 29. Jekyll bunun bir sayfa mı yoksa posta mı olduğunu nasıl belirleyebilir?
- 30. JavaScript kullanarak bir sayı büyük sayı biçimlendirme nasıl yapılır
Bu * değişken * bir sayı olup olmadığını kontrol etmez, * bir sayıdır nesne değişken * noktaları kontrol eder. İkisi arasında büyük bir fark var. –
SO (ve başka yerlerde) ile ilgili soruların nasıl sorulduğu sorulduğunda, özellikle de kabul ettiği için OP'nin ne anlama geldiğini varsaymak doğru olur. –