请问下各位大神,为什么Java中System.out.println(300.1*3)输出的结果为300.29999999999995,而不是300.3

public class Test {
	
	public static void main(String[] args) {
		System.out.print("100.1*2 = ");
		System.out.println(100.1*2);
		
		System.out.print("100.1*3 = ");
		System.out.println(100.1*3);
	}

}
输出结果为:
100.1*2 = 200.2
100.1*3 = 300.29999999999995


zeng_建军
浏览 2294回答 3
3回答

zeng_建军

其实这个问题我在这里问过,不过没找到满意答案,后来去查了下好像是因为电脑采用二进制运算,具体的我也不太懂。

慕粉1352413381

这个问题嘛,我也不知道哈

摩诃迦叶

因为浮点数在存储的时候本来就是近似值而不是精确值
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java