Solved

# Java and Currency Counting

Posted on 2011-02-18
334 Views
Hi Experts,

I want to count a set of numbers that happen to be in EUR format (not USD).
3,45 translates to 3.45 in US

I want to count a bunch of numbers that are in EUR format.  Can anyone offer any tips on how to do this?
Ex:
345,99
200,99
567,83
Total = 1.114,81

I know that BigDecimal will blow up if I use commas so I'm not sure what else to use.

Thank you!!
0
Question by:Greengiants15
• 9
• 3

LVL 47

Expert Comment

ID: 34931077
You just use replace before you use big decimal
String s1 = s.replace(",",".")
0

LVL 47

Expert Comment

ID: 34931099
Or maybe even better:

String s = "1.114,81";

String s1 = "";
for(int j=0; j<s.length(); j++){
if(s.charAt(j)== '.')continue;
if(s.charAt(j)==',')s1 = s1 + ".";
else s1 = s1 + s.charAt(j);

}
System.out.println(s1);
it should print:
1114.81
0

LVL 47

Expert Comment

ID: 34931103
If you want then to use them as numbers
you can after that use

double x =  Double.parseDouble(s1);
0

LVL 47

Expert Comment

ID: 34931119
You can of course make a method out of it:

String convert(String s){
String s1 = "";
for(int j=0; j<s.length(); j++){
if(s.charAt(j)== '.')continue;
if(s.charAt(j)==',')s1 = s1 + ".";
else s1 = s1 + s.charAt(j);

}
return s1;
}

then you just sum them like

double sum;

sum += Double.parseDouble(convert(s)); - add for each number

0

LVL 92

Assisted Solution

objects earned 250 total points
ID: 34931131
0

Author Comment

ID: 34931174
Thanks objects and for Yan - once I know the currency, then are you saying I should so a String.replace() on the commas?  It there not an easier way to calculate this?
0

LVL 92

Expert Comment

ID: 34931193
NumberFormat should handle it for you
0

LVL 47

Expert Comment

ID: 34931195
I'm not sure it all depends on currency - it rather depends on the country - on Locale - in some
countries they use commas, in some they do not use.
If your numbers come from different countries, then, i guess you should use
the way onjects suggested bu specify locale. If all your numbers are
uniform in sense of the country like that 1.111,18 then you can
use method which I wrote (replace is not enough - it will not remove the dot).
0

LVL 92

Expert Comment

ID: 34931217
actually your values aren't actually currency values, they are just numbers.
you should just need to specify locale to use for parsing
0

LVL 47

Expert Comment

ID: 34931237
@objects:
Still, this throws exception for me in Java 1.5:

NumberFormat format = NumberFormat.getCurrencyInstance(Locale.FRANCE);
Object value = format.parse("5,45");

0

LVL 47

Expert Comment

ID: 34931244
@objects:
Yes without curreny it works:

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Object value = format.parse("5,45");

0

LVL 47

Expert Comment

ID: 34931254
But this returns just "1", rather than "1115.45"

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Object value = format.parse("1.115,45");

System.out.println("value: " + value);
0

LVL 47

Accepted Solution

for_yan earned 250 total points
ID: 34931280

This works for both 5,45 and 1.115,45:

NumberFormat format = NumberFormat.getInstance(Locale.GERMANY);
Object value = format.parse("5,45");

System.out.println("value: " + value);
0

## Featured Post

### Suggested Solutions

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done withâ€¦
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Downâ€¦
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arrâ€¦