float 导致的计算精确度问题

java 中float   计算精确度问题,解决方法是利用BigDecimal     如下程序得到两个不同的结果

import java.math.BigDecimal;

/**
 * @author xiangqi
 *
 */
public class Test {

	/**
	 * <dl>
	 * <dt><b>方法功能概要</b></dt>
	 * <dd></dd>
	 * </dl>
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Float a = 108f;
		Float b = 1.05f;
		Float c = new BigDecimal(a.toString()).multiply(new BigDecimal(b.toString())).floatValue();
		System.out.println(c);
		Float d = a * b;
		System.out.println(d);
	}

}

你可能感兴趣的:(float)