Показать сообщение отдельно
  #1 (permalink)  
Старый 05.08.2011, 17:52
Интересующийся
Отправить личное сообщение для kent666 Посмотреть профиль Найти все сообщения от kent666
 
Регистрация: 19.04.2011
Сообщений: 27

Оцените скрипт
Все привет.
мой скрипт конвертирует число в текст. Т..е ввожу 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 скрипт не работает((
Ответить с цитированием