Comment on page
Exchange Rates
When manipulating monetary amounts you often need to convert between currencies.
Money2 provide a simple method to convert a
Money
instance to another currency using an exchange rate.To converts a
Money
instance into a target Currency
use the Money.exchangeTo
method and an ExchangeRate.To do this you need to define an exchange rate which consists of a rate, a from currency and a to currency.
Lets say you have an invoice in Australian Dollars (AUD) which you need to convert to US Dollars (USD).
Start by googling the exchange rate for AUD to USD. You are likely to find something similar to:
1 AUD = 0.68c USD
Which means that for each Australian Dollar you will receive 0.68 US cents. (AKA I'm not traveling to the USA this year).
To do the above conversion:
import 'package:money2/money2.dart';
import 'package:test/test.dart';
void main() {
test('exchange rate', () {
// Create the AUD invoice amount ($10.00)
Money invoiceAmount = Money.fromInt(1000, code: 'AUD');
expect(invoiceAmount.format('SCCC 0.00'), equals(r'$AUD 10.00'));
// Define the exchange rate in USD (0.68c)
ExchangeRate auToUsExchangeRate = ExchangeRate.fromFixed(
Fixed.parse('0.75432', scale: 5),
fromCode: 'AUD',
toCode: 'USD',
toScale: 5);
expect(auToUsExchangeRate.format('S 0.00000'), equals(r'$ 0.75432'));
// Now do the conversion.
Money usdAmount = invoiceAmount.exchangeTo(auToUsExchangeRate);
expect(usdAmount.format('SCCC 0.00'), equals(r'$USD 7.54'));
});
}
Last modified 1yr ago