https://github.com/rettetdemdativ/dinero
💵 Foreign exchange rates package for Go
https://github.com/rettetdemdativ/dinero
currencies dinero exchange exchange-rates foreign-exchange-rates go golang library money package
Last synced: 9 months ago
JSON representation
💵 Foreign exchange rates package for Go
- Host: GitHub
- URL: https://github.com/rettetdemdativ/dinero
- Owner: rettetdemdativ
- License: mit
- Created: 2017-04-18T15:08:51.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-04-21T08:59:43.000Z (about 9 years ago)
- Last Synced: 2025-03-21T17:31:34.067Z (over 1 year ago)
- Topics: currencies, dinero, exchange, exchange-rates, foreign-exchange-rates, go, golang, library, money, package
- Language: Go
- Homepage:
- Size: 20.5 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dinero
dinero is a [Go](https://golang.org) package for fetching exchange rates and converting between currencies. It aims to provide a simple interface and uses [hippasus' ExchangeRates](https://github.com/hippasus/ExchangeRates) and [decimal](https://github.com/shopspring/decimal), which allows for higher precision when working with the values representing currency.
[](https://travis-ci.org/calmandniceperson/dinero) [](https://goreportcard.com/report/github.com/calmandniceperson/dinero) [](https://godoc.org/github.com/calmandniceperson/dinero)
## Installation
go get github.com/calmandniceperson/dinero
## Examples
### Converting a value in one currency to another
```go
a := Amount{Value: decimal.NewFromFloat(5.245), Currency: USD}
// or
a := NewAmount(decimal.NewFromFloat(5.245), USD)
res, _ := a.ConvertTo(EUR)
// res contains the converted value as a decimal
```
### Creating an amount from a float
```go
a := NewAmountFromFloat(5.232, EUR)
```
### Creating an amount from a string
```go
a := NewAmountFromString("5423.65", JPY)
```
### Creating a certain amount of a currency
```go
u := USD
a1 := u.Amount(decimal.NewFromFloat(25000))
a2 := u.AmountFromFloat(7300.32)
a3 := u.AmountFromString("200.09")
```
### Printing an amount of a certain currency
```go
a := Amount{decimal.NewFromFloat(450), JPY}
println(a.String())
```
## Dependencies
* [decimal](https://github.com/shopspring/decimal)
### For testing
* [testify](https://github.com/stretchr/testify)