Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.12.2010, 23:09
a7z вне форума Посмотреть профиль Отправить личное сообщение для a7z Найти все сообщения от a7z
  № 1  
Ответить с цитированием
a7z

Регистрация: May 2009
Сообщений: 30
По умолчанию перевод цифорок в буквы

подскажите, может есть готовые классы перевода цифирок в букавки?
вроде этого
1 -> один
233 -> двести тридцать три
и т.д.

Старый 23.12.2010, 05:01
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
package
{
/* * * * * * * * * *
*                  *
*  @author wolsh   *
*                  *
*   25 AUG 2009    *
*                  *
\* * * * * * * * * */ 
	public class NumToStringConverter 
	{
		private static const UNIT_ARRAY  :Array = ["", " од", " дв", " три", " четыре", " пять", " шесть", " семь", " восемь", " девять", " десять", " одиннадцать", " двенадцать", " тринадцать", " четырнадцать", " пятнадцать", " шестнадцать", " семнадцать", " восемнадцать", " девятнадцать"];
		private static const TEEN_ARRAY  :Array = [" двадцать", " тридцать", " сорок", " пятьдесят", " шестьдесят", " семьдесят", " восемьдесят", " девяносто"];
		private static const HUND_ARRAY  :Array = ["", " сто", " двести", " триста", " четыреста", " пятьсот", " шестьсот", " семьсот", " восемьсот", " девятьсот"];
		private static const ORDER_ARRAY :Array = ["", " тысяч", " миллион", " миллиард"];
 
		public static function convertToRussianText(num:Number):String 
		{
			var resultString:String = "";
			var resultArray:Array = ["", "", "", ""];
			var minus:String = "";
 
			if (num < -999999999999) return "ОШИБКА : число меньше -999999999999";
			if (num > 999999999999) return "ОШИБКА : число больше 999999999999";
			if (num < 0) 
			{
				minus = "минус ";
				num *= -1
			}
			if (num == 0) return "ноль";
			var numParts:Array = new Array();
			var i:Number = num;
			var d:Number = 0;
			var order:Number = 0;
 
			while (i >= 1)
			{
				d = i;
				i = Math.floor(i / 1000);
				numParts[order] = d - i * 1000;
				order++;
			}
			for(var g:Number=0; g<order; g++)
			{
				var hundredString:String = "";
				var decimalString:String = "";
				var numSuffix:String = "";
				var strSuffix:String = "";
				var temp:Number = numParts[g];
				////
				var hundred:Number = Math.floor(temp/100);
				if (hundred) 
				{
					temp -= hundred*100;
					hundredString = HUND_ARRAY[hundred];
				}
				var decimal:Number = Math.floor(temp/10);
				if (decimal>1) 
				{
					temp -= decimal*10;
					decimalString = TEEN_ARRAY[decimal-2];
				}
				//// cуффикс числа (для 1 и 2)
				if (temp == 1 && g != 1) numSuffix = "ин";           // "од^ИН миллион"
				if (temp == 1 && g == 1) numSuffix = "на";           // "од^НА тысяча"
				if (temp == 2 && g != 1) numSuffix = "а";            // "дв^А  миллиона"
				if (temp == 2 && g == 1) numSuffix = "е";            // "дв^Е  тысячи"
				//// суффикс строки порядка
				if (g == 1 && temp == 1) strSuffix = "а";            // "1   тысяч^А"
				if (g == 1 && temp > 1 && temp < 5) strSuffix = "и"; // "2-4 тысяч^И"
				if (g > 1  && temp > 1 && temp < 5) strSuffix = "а"; // "2-4 миллион^А  - миллиард^А"
				if (g > 1  && temp > 4)  strSuffix = "ов";           // "5-9 миллион^ОВ - миллиард^ОВ"
				if (g > 1  && temp == 0) strSuffix = "ов";           // "20-100-900 миллион^ОВ - миллиард^ОВ"
				resultArray[g]  = hundredString
								+ decimalString
								+ UNIT_ARRAY[temp]
								+ numSuffix
								+ (numParts[g] == 0 ? "" : ORDER_ARRAY[g] + strSuffix);
			}
			var rcString:String = resultArray[3]
								+ resultArray[2] 
								+ resultArray[1] 
								+ resultArray[0];
			resultString = rcString.substr(0,1) == " " ? rcString.substring(1) : rcString;
			return (minus + resultString);
		}
	}
 
}
__________________
Reality.getBounds(this);

Старый 23.12.2010, 12:57
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 3  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Ух ты! Круто! Явно не нуб нубом

Старый 23.12.2010, 14:02
a7z вне форума Посмотреть профиль Отправить личное сообщение для a7z Найти все сообщения от a7z
  № 4  
Ответить с цитированием
a7z

Регистрация: May 2009
Сообщений: 30
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Код AS3:
package
{
/* * * * * * * * * *
*                  *
*  @author wolsh   *
*                  *
*   25 AUG 2009    *
*                  *
\* * * * * * * * * */ 
	public class NumToStringConverter 
	{
		private static const UNIT_ARRAY  :Array = ["", " од", " дв", " три", " четыре", " пять", " шесть", " семь", " восемь", " девять", " десять", " одиннадцать", " двенадцать", " тринадцать", " четырнадцать", " пятнадцать", " шестнадцать", " семнадцать", " восемнадцать", " девятнадцать"];
		private static const TEEN_ARRAY  :Array = [" двадцать", " тридцать", " сорок", " пятьдесят", " шестьдесят", " семьдесят", " восемьдесят", " девяносто"];
		private static const HUND_ARRAY  :Array = ["", " сто", " двести", " триста", " четыреста", " пятьсот", " шестьсот", " семьсот", " восемьсот", " девятьсот"];
		private static const ORDER_ARRAY :Array = ["", " тысяч", " миллион", " миллиард"];
 
		public static function convertToRussianText(num:Number):String 
		{
			var resultString:String = "";
			var resultArray:Array = ["", "", "", ""];
			var minus:String = "";
 
			if (num < -999999999999) return "ОШИБКА : число меньше -999999999999";
			if (num > 999999999999) return "ОШИБКА : число больше 999999999999";
			if (num < 0) 
			{
				minus = "минус ";
				num *= -1
			}
			if (num == 0) return "ноль";
			var numParts:Array = new Array();
			var i:Number = num;
			var d:Number = 0;
			var order:Number = 0;
 
			while (i >= 1)
			{
				d = i;
				i = Math.floor(i / 1000);
				numParts[order] = d - i * 1000;
				order++;
			}
			for(var g:Number=0; g<order; g++)
			{
				var hundredString:String = "";
				var decimalString:String = "";
				var numSuffix:String = "";
				var strSuffix:String = "";
				var temp:Number = numParts[g];
				////
				var hundred:Number = Math.floor(temp/100);
				if (hundred) 
				{
					temp -= hundred*100;
					hundredString = HUND_ARRAY[hundred];
				}
				var decimal:Number = Math.floor(temp/10);
				if (decimal>1) 
				{
					temp -= decimal*10;
					decimalString = TEEN_ARRAY[decimal-2];
				}
				//// cуффикс числа (для 1 и 2)
				if (temp == 1 && g != 1) numSuffix = "ин";           // "од^ИН миллион"
				if (temp == 1 && g == 1) numSuffix = "на";           // "од^НА тысяча"
				if (temp == 2 && g != 1) numSuffix = "а";            // "дв^А  миллиона"
				if (temp == 2 && g == 1) numSuffix = "е";            // "дв^Е  тысячи"
				//// суффикс строки порядка
				if (g == 1 && temp == 1) strSuffix = "а";            // "1   тысяч^А"
				if (g == 1 && temp > 1 && temp < 5) strSuffix = "и"; // "2-4 тысяч^И"
				if (g > 1  && temp > 1 && temp < 5) strSuffix = "а"; // "2-4 миллион^А  - миллиард^А"
				if (g > 1  && temp > 4)  strSuffix = "ов";           // "5-9 миллион^ОВ - миллиард^ОВ"
				if (g > 1  && temp == 0) strSuffix = "ов";           // "20-100-900 миллион^ОВ - миллиард^ОВ"
				resultArray[g]  = hundredString
								+ decimalString
								+ UNIT_ARRAY[temp]
								+ numSuffix
								+ (numParts[g] == 0 ? "" : ORDER_ARRAY[g] + strSuffix);
			}
			var rcString:String = resultArray[3]
								+ resultArray[2] 
								+ resultArray[1] 
								+ resultArray[0];
			resultString = rcString.substr(0,1) == " " ? rcString.substring(1) : rcString;
			return (minus + resultString);
		}
	}
 
}
красота! респект и уважуха

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.