4 ms·
A standard library, a proper date/time/timezone implementation, and robust number support (all sizes of integers and for the love of god Decimal). Every time I
by noveltyaccount 5y ago
A standard library, a proper date/time/timezone implementation, and robust number support (all sizes of integers and for the love of god Decimal). Every time I get excited about Deno and Typescript and all of that, I get so frustrated that 0.1 + 0.2 != 0.3 and that I need to find and vet a community Decimal library.
(I know BigInt is a thing and Temporal is coming.)
- bern4444 5y agoI agree a standard library for JS would be great, but .1 + .2 != .3 is the case in several languages and is not anything to do with JS. This also is or can be the case in C, C++, Clojure, Python, and many other languages [1]. [1] https://0.30000000000000004.com https://0.30000000000000004.com
- noveltyaccount 5y agoYes... It's an artifact of floating points. My issue is that JS only has floating points and not Ints and Decimal.
- hajile 5y agoJS has had integers since pretty much day 1 with bitwise operators. They just (from a user perspective) convert back afterward. If you were choosing just one though, floats would definitely be a better choice than integers. It's also possible to make length 1 typed arrays of integers and operate on them if you really need. Then, as you mention there's BigInt numbers which are supported on the last few versions of every major browser except IE11.
- runarberg 5y agoThere is a stage 1 proposal for BigDecimal. https://github.com/tc39/proposal-decimal https://github.com/tc39/proposal-decimal