Solved

Currency Conversion / Localization

Posted on 2012-12-28
5
387 Views
Last Modified: 2012-12-28
I'm working on globalization/localization of my MVC3 project. I'm setting the culture info by a user selected language drop down. So it has English/Spanish/Italian/German etc.

This also changes the currency symbol, which is nice, but I'm not sure about the best way to go about actually doing currency conversions in my app. I'd like to have everything stored in my database in dollars and just have the display for any currency amounts in the localized conversion.

After googling around, most of the localization for currencies I saw had to do with the symbol and not with actually doing any conversions...

Is there a good way of doing this? We would most likely have a conversion table that was updated daily, but I'm looking for an easy way to change the display (and only the display) for currencies.
0
Comment
Question by:Josh_Blade
  • 2
  • 2
5 Comments
 
LVL 13

Assisted Solution

by:themrrobert
themrrobert earned 250 total points
ID: 38728359
You've pretty much figured it out, you're going to need a table to  store the conversions in, the switch () the language (currency) and select the daily conversion rate for converting USD into the target currency. Multiply the rate X dollar amount and then just display the result.

You can do the same for USD, just make sure USD->USD is always 1, that way you can just use the same function to do all of your conversions, including if its already USD
0
 
LVL 21

Expert Comment

by:Dale Burrell
ID: 38728375
You could try these guys http://www.yourcurrencyconverter.com/

I had a lot of trouble with them and ended up writing my own,  is an example of a client of mine, click the flags:

http://www.amanzitravel.co.uk/product/africa/namibia/volunteer_project/wildlife_conservation_volunteer/namibia_wildlife_sanctuary_av001/index.html

Here is my half-developed site - I haven't finished the automated sign-up, nor are the rates quoted my final rates - I haven't quite decided what to charge. But anyway on the resources tab I explain exactly how to do it so you can roll your own if wished.

http://currency.creative-dreaming.com/
0
 

Author Comment

by:Josh_Blade
ID: 38728466
I guess the biggest thing I'm struggling with is user input. If I have some currency input control, do I need to make sure to unconvert it in my controller when the page gets posted?

I was thinking it would be best to store everything in dollars and display the conversion, but then the users would be inputting information in the converted currency as well and I would have to convert it back to dollars to store in my db.

I'm just trying to find a non tedious way to multiply by conversion rate in the view and then divide by conversion rate in my controller (where applicable) so everything stays consistent.

There might not be an easy way and I just have to suck it up, but above is what I'm looking for.
0
 
LVL 21

Accepted Solution

by:
Dale Burrell earned 250 total points
ID: 38728487
Well it really depends what your application is. Localisation doesn't always apply to amounts of money. For example if you are selling something, typically you only take payment in a single currency (unless you are a fairly large organisation), and therefore if you do decide to display the amount in another currency its not going to be the exact amount because you aren't the one carrying out the final conversion, therefore you have to be very careful to display loudly and proudly that any amounts displayed in a currency other than the default are indicative only.

So it really depends what your application does, if you fundamentally operate in a single currency then you may be better off forcing everyone to use that. However if the data entered if only for use by the person who enters it, then maybe it should be stored in their native currency - in which case store the currency with the amount.

If you still want to accomplish what you say, which is to store the amounts in dollars, but display the amounts in local currency, then there is no easy way - well rather the conversion is a piece of piss, but obtaining an up-to-date conversion rate is a bit more complex. And keep in mind that while google and yahoo etc do provide conversion API's they are all for non-commercial use.

HTH

So before you decide how to solve the problem, you have to be clear on exactly what you are trying to achieve for the user and whether or not converting money amounts makes logical sense.
0
 

Author Closing Comment

by:Josh_Blade
ID: 38728531
dale_burrell and themrrobert both answered my question pretty thoroughly and gave me some points to think about. Thanks guys.
0

Featured Post

How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

807 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question