Important Notice: Our web hosting provider recently started charging us for additional visits, which was unexpected. In response, we're seeking donations. Depending on the situation, we may explore different monetization options for our Community and Expert Contributors. It's crucial to provide more returns for their expertise and offer more Expert Validated Answers or AI Validated Answers. Learn more about our hosting issue here.

Why does simple decimal arithmetic give strange results?

0
10 Posted

Why does simple decimal arithmetic give strange results?

0

For example, 5 * 1.015 does not give exactly 5.075 and 0.06+0.01 does not give exactly 0.07 in javascript. ECMAScript numbers are represented in binary as IEEE-754 (IEC 559) Doubles, with a resolution of 53 bits, giving an accuracy of 15-16 decimal digits; integers up to about 9e15 are precise, but few decimal fractions are. Given this, arithmetic is as exact as possible, but no more. Operations on integers are exact if the true result and all intermediates are integers within that range. In particular, non-integer results should not normally be compared for equality; and non-integer computed results commonly need rounding; see 4.6. • http://msdn2.microsoft.com/en-us/library/7wkd9z69.aspx • http://www.merlyn.demon.co.uk/js-misc0.htm#DW4 Otherwise, use Math.round on the results of expressions which should be of integer value.

Related Questions

What is your question?

*Sadly, we had to bring back ads too. Hopefully more targeted.