decimal
Arbitrary-precision fixed-point decimal numbers in Go (by shopspring)
decimal
A high-performance, arbitrary-precision, floating-point decimal library. (by ericlagergren)
Our great sponsors
decimal | decimal | |
---|---|---|
15 | 3 | |
5,901 | 490 | |
2.6% | - | |
6.3 | 0.0 | |
8 days ago | over 1 year ago | |
Go | Go | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
decimal
Posts with mentions or reviews of decimal.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-01.
-
Trouble understanding rounding when the next digit is after round precision is a #5?
Try it in JS with console.log(4.225 * 100);, you'll see the same unexpected result. Depending on your needs, it's actually fine to just be off by some amount. If it does really matter, then use an arbitrary precision library like https://github.com/shopspring/decimal to get the results you need.
-
Handling currency values: facts and best practices
Most programming languages ( JavaScript, PHP, Go, Python, Java, C# ) have built-in support or 3rd-party libraries for handling this data type, even though the internal implementations can differ:
-
Any go and python number experts here?
while working with money, dont use floats, use something like https://github.com/shopspring/decimal (go std lib doesnt have its own decimals yet)
-
my first golang project!
Integers, or something like this: https://github.com/shopspring/decimal
-
80x improvements in caching by moving from JSON to gob
I make heavy use of caching, and was caching both in-memory and in Redis using JSON to convert the data in to a string. The struct itself isn't super complicated, one level nested, and some fields use the shopspring/decimal library.
-
Unexported interfaces usage question
I actually use this to represent monetary values btw :)
-
How to round(2) float64?
Check out https://github.com/shopspring/decimal for doing money related calculations.
-
Library recommendation -- money calculations, more accurate handling of floats
We personally use https://github.com/shopspring/decimal and it works well.
-
What are your favorite packages to use?
decimal, one of the first Go library that created to work with decimal and monetary value.
-
What libraries from other languages do you wish were ported over into go?
https://github.com/shopspring/decimal also.
decimal
Posts with mentions or reviews of decimal.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-12-27.
- Companies that use server-side Kotlin
-
Library recommendation -- money calculations, more accurate handling of floats
I am still tracking ericlagergren/decimal as an alternative to apd, due to its better performance, but it's still seeing very low maintainer activity (still waiting on a v4 for go mod compat).
-
currency - Currency amounts and formatting for Go
Note: In benchmarks ericlagergren/decimal was noticeably faster than cockroachdb/apd, but it has known bugs when used with go mod, so I decided to wait and go with cockroachdb/apd for now. The Amount struct wraps the decimal implementation completely, making it easy to do the swap later without breaking BC.
What are some alternatives?
When comparing decimal and decimal you can also consider the following projects:
Golang Crypto Trading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges
dgs-framework - [Moved to: https://github.com/Netflix/dgs-framework]
go-money - Go implementation of Fowler's Money pattern
apd - Arbitrary-precision decimals for Go
go-finance - :warning: Deprecrated in favor of https://github.com/piquette/finance-go
intl - A PHP internationalization library, powered by CLDR data.
Testify - A toolkit with common assertions and mocks that plays nicely with the standard library
misk - Microservice Kontainer
big decimal - An arbitrary-precision decimal floating-point arithmetic package for Go
jOOQ - jOOQ is the best way to write SQL in Java