Вот модифицированный код, который я использовал:
//Wrapper class for NumberToText(int n) to account for single zero parameter.
public static string ConvertToStringRepresentation(long number)
{
string result = null;
if (number == 0)
{
result = "Zero";
}
else
{
result = NumberToText(number);
}
return result;
}
//Found at http://www.dotnet2themax.com/blogs/fbalena/PermaLink,guid,cdceca73-08cd-4c15-aef7-0f9c8096e20a.aspx.
//Modifications from original source:
// Changed parameter type from int to long.
// Changed labels to be singulars instead of plurals (Billions to Billion, Millions to Million, etc.).
private static string NumberToText(long n)
{
if (n < 0)
return "Minus " + NumberToText(-n);
else if (n == 0)
return "";
else if (n <= 19)
return new string[] {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight",
"Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen",
"Seventeen", "Eighteen", "Nineteen"}[n - 1] + " ";
else if (n <= 99)
return new string[] {"Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy",
"Eighty", "Ninety"}[n / 10 - 2] + " " + NumberToText(n % 10);
else if (n <= 199)
return "One Hundred " + NumberToText(n % 100);
else if (n <= 999)
return NumberToText(n / 100) + "Hundred " + NumberToText(n % 100);
else if (n <= 1999)
return "One Thousand " + NumberToText(n % 1000);
else if (n <= 999999)
return NumberToText(n / 1000) + "Thousand " + NumberToText(n % 1000);
else if (n <= 1999999)
return "One Million " + NumberToText(n % 1000000);
else if (n <= 999999999)
return NumberToText(n / 1000000) + "Million " + NumberToText(n % 1000000);
else if (n <= 1999999999)
return "One Billion " + NumberToText(n % 1000000000);
else
return NumberToText(n / 1000000000) + "Billion " + NumberToText(n % 1000000000);
}
Это зависит от того, для чего вы его будете использовать. Если вы его используете, это, вероятно, ускорит вашу разработку css, но вы потеряете немного гибкости.
На самом деле это то же самое для всех этих «фреймворков», не только для css ...
Если вы решив работать с фреймворком css, я рекомендую прочитать эту статью
Существует два широко распространенных варианта: 960 и blueprint . Оба основаны на системе сеточного макета . Оба включают сброс CSS .
Преимущество здесь, очевидно, состоит в том, что вы получаете более согласованный макет в нескольких браузерах, и если вы, например, тестируете Firefox, у вас больше шансов, что он будет выглядеть одинаково в IE. Поскольку эти фреймворки основаны на сетке, ваш макет также намного чище и хорошо выровнен. Оба имеют горизонтальное выравнивание, но вертикальное выравнивание или вертикальный ритм поддерживаются только в Blueprint.
Обратной стороной является то, что это может быть излишним для вашего макета. Если вам нужен простой макет из трех столбцов, вы можете просто выполнить сброс CSS и шаблон макета из трех столбцов.
Лично я обнаружил, что использование этих фреймворков дает мне много творческого самовыражения, и я сделал гораздо больше с моими макетами после принятия этих фреймворков, чем когда-либо прежде, из-за кроссбраузерного хакерства CSS. Я использую Blueprint, потому что считаю его очень интуитивно понятным, но система 960 Grid System также получила отличные отзывы.
Да, в качестве отправной точки, при условии, что вы готовы исключить вещи, которые вам не нужны, и с удовольствием вносите в них изменения. Это отличный способ начать работу над макетом / дизайном, но он бесполезен, если вы затем напишете таблицу стилей, которая переопределяет правила в CSS фреймворка. Будьте готовы настроить его в соответствии с тем, над чем вы работаете.
Кроме того, мне очень нравится bluetrip , который:
сочетает в себе лучшее из Blueprint, Триполи (отсюда и название), Хартии таблица стилей печати, простота 960.gs, и значки элементов