Java Essay: float, double precision

Source: Internet
Author: User

Typically, a float or double is used to calculate the currency.

What does the following calculation output?

System.out.println (2.00-1.10);

Started thinking it would be 0.90, the actual result is: 0.8999999999999999

The reason is that not all decimals can be accurately represented by binary floating point.

How to transform it?

  • Use int, long to calculate, and then convert to floating point number.
  • Use BigDecimal to calculate.
System.out.println (New BigDecimal ("2.00"). Subtract (New BigDecimal ("1.10"));

This will get the result we want: 0.90

Note: When using BigDecimal, if this is initialized, you will get the result of failure.

System.out.println (New BigDecimal (2.00) Subtract (new BigDecimal (1.10)));

In this case, the result is: 0.899999999999999911182158029987476766109466552734375

Java Essay: float, double precision

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.