2015-10-20 4 views
0

Мне нужно форматировать число со скоростью с помощью запятых в качестве десятичного разделителя как точку разделителя тысяч.Velocity NumberTools formatter

Я проверил на другой ответ, но я смог найти только это: How to use Velocity NumberTool for big currency numbers , который не является полезным для моей цели, так как в случае, если я хочу использовать различные стили мне нужно, чтобы создать различные функции.

Я также проверил документацию Velocity и использовать различные типы моделей, никто из них не работает для меня:

context.put("numberTool", new NumberTool()); 

$numberTool.format('#.###,00', $val) 
$numberTool.format('###.###,00', $val) 
$numberTool.format('#.###,##', $val) 
$numberTool.format('###.###,##', $val) 

Может кто-нибудь мне помочь и найти способ, используя, если это возможно Формат Velocity номер?

Заранее спасибо.

ответ

0

Все, что вам нужно сделать, это изменить языковой стандарт NumTool. Например:

[java] 
NumberTool numberTool = new NumberTool(); 
numberTool.setLocale(Locale.FRENCH); 
context.put("numberTool", numberTool); 

[vtl] 
$numberTool.format('#,###.00', $val) 
$numberTool.format('###,###.00', $val) 
$numberTool.format('#,###.##', $val) 
$numberTool.format('###,###.##', $val) 
0

Else, если вы не имеете доступ к изменению локаль вы могли бы сделать еще один трюк, благодаря String.

 
-- To get $50000.00 to be $50,000.00 do (we need to convert to double) 
#set($NumberFormatter = "") 
$NumberFormatter.format("$%,.2f",$convert.toDouble($someNumberWithDigits)) 

-- To get $50000 to be $50,000 and no decimals do (we need to convert to int) 
#set($NumberFormatter = "") 
$NumberFormatter.format("$%,d",$convert.toInteger($someNumberWithDigits))