Incorrect Division Results
I've got a time calculator that has worked reasonably well for a number of years. One thing that always bothered me, though, was that if one used fractional seconds, the results wo
Solution 1:
I haven't used BigDecimal in any production code yet but found this question interesting so I though I give it a try. You are right about the need for a MathContext
as parameter to the division function. Here is what I did, based on your example:
console.log(firstB.divide(secondB, new MathContext(100)).toString());
Creating a context that tells the BigDecimal to use 100 digits in scientific mode outputs:
0.9019659412190150568742192123085015451377473864159379314879347754618975606548754027220724570977710566
There's also options to control different output modes PLAIN
, SCIENTIFIC
and ENGINEERING
+ various rounding modes.
Full example on jsfiddle
Update:
The default output format is SCIENTIFIC
, not PLAIN
. Examples here
Update 2: Created a tiny performance test here, looks like BigDecimal is about 10000 times slower than native javascript division.
Post a Comment for "Incorrect Division Results"