Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Оцените скрипт (https://javascript.ru/forum/project/19479-ocenite-skript.html)

kent666 05.08.2011 17:52

Оцените скрипт
 
Все привет. :)
мой скрипт конвертирует число в текст. Т..е ввожу 55 => пятьдесят пять. Все вроде работает кроме последнего ифа, где обрабатываются числа от тысячи и до 9999.
Оцените и подскажите где может скрываться ошибка в этом скрипте
var single=[]
        single[0]=''
        single[1]='один'
        single[2]='два'
        single[3]='три'
        single[4]='четыре'
        single[5]='пять'
        single[6]='шесть'
        single[7]='семь'
        single[8]='восемь'
        single[9]='девять'
        single[10]='десять'
        
        single[11]='одинадцать'
        single[12]='двенадцать'
        single[13]='тринадцать'
        single[14]='четырнадцать'
        single[15]='пятнадцать'
        single[16]='шестнадцать'
        single[17]='семнадцать'
        single[18]='восемнадцать'
        single[19]='девятнадцать'
        
        single[20]='двадцать'
        single[30]='тридцать'
        single[40]='сорок'
        single[50]='пятьдесят'
        single[60]='шестьдесят'
        single[70]='семьдесят'
        single[80]='восемдесят'
        single[90]='девяносто'
        
        single[100]='сто'
        single[200]='двести'
        single[300]='тристо'
        single[400]='четыресто'
        single[500]='пятсот'
        single[600]='шестсот'
        single[700]='семсот'
        single[800]='восемсот'
        single[900]='девятсот'
        
        single[1000]='тысяча'
        single[2000]='две тысячи'
        single[3000]='три тысячи'
        single[4000]='четыре тысячи'
        single[5000]='пять тысяч'
        single[6000]='шесть тысяч'
        single[7000]='семь тысяч'
        single[8000]='восемь тысяч'
        single[9000]='девять тысяч'    
    
    function first(num)
    {
            var a = num-num%10 // десятки
            var b = num%10 // единицы
            
            return single[a]+' '+single[b]    
    }
    
    function f()
    {
        var out='не корректно внесли данные'
        var num=document.getElementById('number').value
        
        if (num>0&&num<21)
        {
            out = single[num]             
        }
        else if (num>20&&num<100)
        {
            out = first(num)
        }
        else if (num>99&&num<1000)
        {
            var b = num%100
            var a = num - b // сотни

            if (b<20)
            {
                var d=single[b]
            }
            else 
            {
                var d = first(b)
            }
            out = single[a]+' '+d
        }
        else if (num>999&&num<10000)
        {
            var b = num%1000
            var a = num - b // тысячи
            var c = b%100
            var d = b - c // сотни
            
            if (с<20)
            {
                var g = single[c]
            }
            else 
            {
                var g = first(c)
            }
            
            out = single[a] + ' ' + single[d] +' ' + g
        }
        
        alert(out)
	}

Когда вношу цифру более 999 скрипт не работает((

kent666 05.08.2011 18:34

Я нашел ошибку. В последнем if (с<20)
буква с - русская))) Пипец а я уже все перепроверил.
Скрипт делитанский зато я сам сделал)))

trikadin 06.08.2011 02:35

Цитата:

Сообщение от kent666
делитанский

Дилетантский. Учите русский язык, а потом языки программирования))

B@rmaley.e><e 06.08.2011 11:46

Цитата:

Сообщение от kent666
Пипец а я уже все перепроверил.

Консоль ошибок надо было смотреть.


Часовой пояс GMT +3, время: 01:18.