Author |
Message |
13/05/2013 13:52:20
|
bthalheim
Power User
Joined: 05/04/2012 11:45:24
Messages: 72
Offline
|
Hi,
my produkt owner wants me to display a BigDecimal with two digits after a comma. This would be the right way to display amounts of money:
- 17,55
- 17,50
- 17,00
I have already done the following:
- format="bigdecimal"
- formatmask="dec2"
For the examples mentioned above, this should work.
Unfortunately, there now happens something like:
- 35.000,00
How can I make sure that a comma (,) will be always used between the Euros and the Cents and nowhere else anything else?
Regards,
Björn
|
|
|
13/05/2013 13:58:26
|
CaptainCasa
Power User
Joined: 21/11/2007 12:23:06
Messages: 5555
Offline
|
Hi,
all bigdecimal, float, double formats internall use...
Code:
NumberFormat nf = NumberFormat.getNumberInstance();
The behavior with adding some thousands-separator is coming from the default implementation.
But, if you may pass an own format in FORMATMASK as well, which is then passed in the client in the following way:
Code:
DecimalFormat df = new DecimalFormat(i_formatmask);
Regards, Björn
|
Björn Müller, CaptainCasa GmbH |
|
|
13/05/2013 14:05:58
|
dstrigel
Power User
Joined: 09/12/2010 09:23:42
Messages: 69
Offline
|
Hi,
try
formatmask="0.00"
Regards
Daniel
|
|
|
14/05/2013 18:32:40
|
bthalheim
Power User
Joined: 05/04/2012 11:45:24
Messages: 72
Offline
|
Hi,
using "0.00" works, but unfortunately, it depends on the JVM default locale to decide wheter . or , is used as a decimal separator.
Is there any way in CaptainCasa to do what looks in the code like this:
Code:
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator(',');
decimalFormat.setDecimalFormatSymbols(dfs);
System.out.println(decimalFormat.format(1202.22));
//Output: 1202,22
Regards,
Björn
|
|
|
14/05/2013 18:56:48
|
CaptainCasa
Power User
Joined: 21/11/2007 12:23:06
Messages: 5555
Offline
|
Hi,
well, all the client formatting of labels and formatted fields (using FORMAT and FORMATMASK) has the purpose to follow some localization aspects - so that American users see "100,000.00" whereas German users see "100.000,00". ;-)
If you really want to do "brute force formatting" - again; ;-)... - then I would propose to just use a normal String as output and do the formatting on server side.
Regards, Björn
|
Björn Müller, CaptainCasa GmbH |
|
|
15/05/2013 10:57:47
|
bthalheim
Power User
Joined: 05/04/2012 11:45:24
Messages: 72
Offline
|
Hi,
Björn, are you sure that german users see german formatting and english users see english formatting?
I would say, the user, whatever language he or she has chosen, sees the number formatting of the language in which the server JVM runs ...
Regards,
Björn
|
|
|
15/05/2013 13:17:46
|
CaptainCasa
Power User
Joined: 21/11/2007 12:23:06
Messages: 5555
Offline
|
Hi,
please note: there are two areas of I18N - the client and the server.
Both can be fine-controlled to your needs - and both are technically independent from one another.
The client localization can be set via the user (configuration icon) or can be set by using the CLIENTCONFIG Element. If not explicitly defined then the client will always use the localization of the client's VM.
In the Developers' Guide there is a documentation on this...
Regards, Björn
|
Björn Müller, CaptainCasa GmbH |
|
|
16/05/2013 10:48:48
|
bthalheim
Power User
Joined: 05/04/2012 11:45:24
Messages: 72
Offline
|
Hi,
Björn, you are exactly right.
Since it was OK for our project to show the user decimal seperators according to his or her language,
- format="bigdecimal" and
- formatmask="0.00"
do exactly the job and nothing needs to be done in the UI Code.
Thank you very much, this job is done now.
Regards,
Björn
|
|
|
|