Пиплы, делитесь короткими путями форматирования number в currency.
пример: 32556334 в 32,556,334.00
sprintf() вроде не катит (запятые не расставляет).
Да, модули не предлагать.
Perl людям
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- Tundra
- Пользователь
- Сообщения: 120
- Зарегистрирован: 18 фев 2003, 07:36
- Откуда: Toronto
-
- Пользователь
- Сообщения: 110
- Зарегистрирован: 20 фев 2003, 07:17
- Откуда: оттуда
regexp?
1111
-
- Пользователь
- Сообщения: 92
- Зарегистрирован: 20 фев 2003, 00:41
не супер-пупер коротко, но вроде работает:
кто-нить знает как короче, типа в одну строку?
Код: Выделить всё
sub make_currency_string {
local $_ = shift ;
unshift( @v, $2 )
while( s/^(.*)(\d{3})$/$1/ ) ;
$_ && unshift( @v, $_ ) ;
join( ',', @v ) . ".00" ;
}
- Смайл
- Пользователь
- Сообщения: 135
- Зарегистрирован: 18 фев 2003, 10:38
мои три копейки
А вот и мой вариант (детерменистский )
JavaScript
тестовая страница: http://terra-informatica.org/test/currency.htm
[/code]
JavaScript
Код: Выделить всё
function currency(number,dollars)
{
if(dollars) {
if(!(number = Math.floor(number))) return "";
var L = currency(number / 1000,true);
return (L?(L + ","):"") + (number % 1000).toString();
}
else {
var c = (Math.round(number * 100) % 100).toString();
return currency(number,true) + "." + ((c.length != 1)?c:(c + "0"));
}
}
[/code]
- Tundra
- Пользователь
- Сообщения: 120
- Зарегистрирован: 18 фев 2003, 07:36
- Откуда: Toronto
Re: мои три копейки
Смайл писал(а):А вот и мой вариант (детерменистский )
JavaScriptтестовая страница: http://terra-informatica.org/test/currency.htmКод: Выделить всё
function currency(number,dollars) { if(dollars) { if(!(number = Math.floor(number))) return ""; var L = currency(number / 1000,true); return (L?(L + ","):"") + (number % 1000).toString(); } else { var c = (Math.round(number * 100) % 100).toString(); return currency(number,true) + "." + ((c.length != 1)?c:(c + "0")); } }
[/code]
С Java/Javascript я думаю нет таких проблем. Дело в том , что у Perl нет даже приблизительных build-in функций - вот и приходится изощрятся.