2010-07-01 19 views

cevap

7

hiçbir piton çekirdeğinde, ancak 3. parti kütüphane bulunmaktadır num2words

>>> from num2words import num2words 
>>> num2words(1e25) 
'ten septillion, one billion, seventy-three million, seven hundred and forty-one thousand, eight hundred and twenty-four' 

>>> num2words(10000000000000000000000000) 
'ten septillion' 

sadece Türkçe olarak bir çalışma başlatılmış

+0

işleyebilir bir numarası doğrulama yazmadım yana

- (? C) Aslında fark, ancak nasıl piton bir hata var üstel kolları ifade: 'int (1e25)' '10000000000000000905969664L' ve' 1 * 10 ** 25' '' 10000000000000000000000000L' üretir. Garip? –

+2

Hiç de garip değil. "1e25", "kayan noktalı değeri 10^25'e en yakın" yapar ve "1 * 10 ** 25", "10'u 10 kez 10 çarpma sonucu 1 çarpın" der. Sabit genişlikli kayan noktalı aritmetik (bilgisayardaki) matematiksel olarak kesin değildir, Python'un son sürümlerinde tamsayılar rasgele kesindir. – Ken

+2

1e25 bir "üstel ifade" değil, bir kayan nokta değişmezidir. Python'da bir kayan nokta sayısı tam olarak 10 ** 25'i temsil edemez (ve bu 2 ** 84> 10 ** 25> 2 ** 83) diye böyle büyük bir sürpriz olmamalıdır. – 6502

1

(1e25, ne sizin örnekte tam tamsayı dönüştürülür unutmayın), bu yararlı olabilir.

https://github.com/guneysus/humanizer-tr

Bu dizeleri listesini döndürür ve kolay test fonksiyonları randomizer()prettizer() ve çekirdek fonksiyonu ile birlikte geliyor humanizer()

O yaklaşım bölünmesi kullanın çünkü çok büyük sayılarla işlem, ancak olabilir

dizesini kullanır segmentasyon ve manipülasyon.

Çift sayı veya dizi girebilirsiniz. ben bile olmayan bir sayı metni :) Mükemmel

>>> humanizer('STACK OVER FLOW') 
['STA Trilyon', 'CK Milyar', 'OVE Milyon', 'R F Bin', 'LOW']