java Puzzles 之关于金钱计算那些事
2016-01-31 21:39
417 查看
java Puzzles 之关于金钱计算那些事
java Puzzles 之关于金钱计算那些事,java要用int、long、or BigDecimal来计算,一般我们BigDecimal。package com.doctor.java.puzzle; import java.math.BigDecimal; /** * @author sdcuike * * @time 2016年1月31日 下午9:26:52 * * java Puzzles 之关于金钱计算那些事,java要用int、long、or BigDecimal来计算,一般我们BigDecimal。 * * 警告:用BigDecimal(String)这个构造函数,而非 BigDecimal(double)。 * * * In summary, avoid float and double where exact answers are required; * for monetary calculations, use int, long, or BigDecimal。 * not all decimals can be represented exactly using binary floating-point. * * There is one caveat: Always use the BigDecimal(String) constructor, * never BigDecimal(double). The latter constructor creates an instance with the * exact value of its argument: new BigDecimal(.1) returns a BigDecimal representing 0.1000000000000000055511151231257827021181583404541015625. * */ public class TimeForAChange { public static void main(String[] args) { System.out.println(2.00 - 1.10);// 0.8999999999999999 System.out.println(2.00D - 1.10D);// 0.8999999999999999 System.out.println(2.00F - 1.10F);// 0.9 System.out.println(Double.toString(2.00D));// 2.0 System.out.println(BigDecimal.valueOf(2.00).subtract(BigDecimal.valueOf(1.10)));// 0.9 System.out.println(BigDecimal.valueOf(2.00F).subtract(BigDecimal.valueOf(1.10F)));// 0.899999976158142 System.out.println(BigDecimal.valueOf(2.00D).subtract(BigDecimal.valueOf(1.10D)));// 0.9 System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));// 0.90 } }
相关文章推荐
- 深入理解Java内存模型(六)——final
- java中的修饰符static,final和abstract
- 模版下载 框架 源码 SpringMVC mybatis or hibernate
- Spring AOP两种实现机制是什么?
- Java中的参数传递方式
- java Puzzles 之 如何正确的判断奇数
- spring 定时器配置
- spring cron表达式 Spring定时器
- javah导出类的头文件抛出异常——java.lang.IllegalArgumentException: Not a valid class name(原因及解决方法)
- java内存使用
- 搭建SpringMvc框架
- java 流程语句
- spring 测试测试
- Javaweb学习之jsp与servelet的区别
- java类介绍
- 深入理解Java内存模型(五)——锁
- Java程序向MySql数据库中插入的数据变成了问号
- Java线上应用故障排查之二:高内存占用
- java导出数据到excel
- 【NanoPi2试用体验】eclipse使用的官方提供的交叉编译器