double是双精度的,有效位是16位,占8个字节,取值范围是10的-308次方到10的308次方。
当你不声明的时候,默认小数都用double来表示,所以在上面的程序中,直接打印出的表达式结果以double类型显示的。所以如果要用float的话,则应该在其后加上f
float a=1.3f
注意float是8位有效数字,第7位数字将会产生四舍五入
所以如果一个float变量 这样定义: float a=1.32344435; 则第7位将产生四舍五入(5及5以下的都将舍去) 实际a值为1.3234444。
其实float和double只是用来科学计算和工程计算上,在很多商业计算上,需要的数据更加精确,这个时候就用到了BigDecimal了,简单说一下BigDecimal到底是什么东西。
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
把上面的代码改写下:
package com.main;
import java.math.BigDecimal;
public class Test1 {