koddla

Yazılımcıları bilgi ile güçlendirir.

Python’da stringi float veya int’e nasıl dönüştürebiliriz?

Python’da, "545.2222" gibi bir sayısal stringi float değerine nasıl dönüştürebiliriz? Ya da “30” şeklindeki bir dizeyi tamsayıya dönüştürmek için ne yapmak gerekir? float() ve int() fonksiyonlarını kullanabiliriz:

>>> a = "545.2222"
>>> float(a)
545.22220000000004
>>> int(float(a))
545

Yerelleştirme ve virgül kullanımı

Bazı özel durumlar için bir sayının dize gösteriminde virgül kullanılabilir. Örneğin float("545,545.2222") burada bir hata mesajı verir. Bu durumda dizeyi sayılara dönüştürmek ve virgülleri doğru yorumlamak için locale modülüne ait metotları kullanın. locale.atof yerel ayar istenen sayı kuralı için ayarlandıktan sonra float’a dönüştürür.

Örnek 1 — ABD sayı kuralları

Amerika Birleşik Devletleri ve İngiltere’de virgül binlik ayırıcı olarak kullanılabilir. Amerika yereli bu örnekte, virgül ayırıcı olarak düzgün bir şekilde işlenir:

>>> import locale
>>> a = u'545,545.2222'
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
'en_US.UTF-8'
>>> locale.atof(a)
545545.2222
>>> int(locale.atof(a))
545545
>>>

Örnek 2 — Avrupa sayı kuralları

Dünya ülkelerinin çoğunda virgüller dönemler yerine ondalık işaretler için kullanılır. Fransızca için bu örnekte virgül ondalık işaret olarak işlenir:

>>> import locale
>>> b = u'545,2222'
>>> locale.setlocale(locale.LC_ALL, 'fr_FR')
'fr_FR'
>>> locale.atof(b)
545.2222

locale.atoi metodu da kullanılabilir, ancak o zaman bağımsız değişken bir tamsayı olmalıdır.

Bir yanıt yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top