0.1+0.2=0.3?

来源:百度知道 编辑:UC知道 时间:2024/07/02 07:29:28
<script language=javascript>
alert(0.1+0.2);
</script>

为什么?
请执行一下,为什么都不执行就回答呢?
0.1+0.2=0.30000000000000004 为什么?
我知道了
浮点数”不是“实数”,浮点数有最大表示范围,在表示范围内用最接近实数的浮点数可以表示数来表示,比如
0.1是实数,意味着0.10000000…… 都是0.1,而double无法精确表示0.1,但它能精确表示 +0.1000000000000000055511151231257827021181583404541015625 ,所以它用 +0.1000000000000000055511151231257827021181583404541015625 来表示 0.1,同样:
0.1 <--> 0.1000000000000000055511151231257827021181583404541015625
0.2 <--> 0.200000000000000011102230246251565404236316680908203125
0.3 <--> 0.299999999999999988897769753748434595763683319091796875
而 0.1000000000000000055511151231257827021181583404541015625 + 0.200000000000000011102230246251565404236316680908203125 的结果也是浮点数无法精确表示的,于是它用最接近的 +0.3000000000000000444089209850062616169452667236328125 来表示。

因为都是数值相加就是0.3
你想这样吧?
对了就给我加分吧
<script language=javascript>
var q="0.1"
alert(q+0.2);
</script>

这应该是javascript对浮点数的解析错误吧

<script language=javascript>
alert("0.1+0.2");
</script>

加引号.

我靠,好混乱。。