SVG多段线/多边形';s点dom值与点属性值不同

SVG多段线/多边形';s点dom值与点属性值不同,svg,Svg,请参阅此svg代码 <polyline id="poly" points="163.2 100 163.2 200" stroke-width="1" fill="none" stroke="red"></polyline> 将获得163.1999969482422。不是预期的163.2 并且(163.2==163.1999969482422)在javascript中为false 我在chrome和firefox上进行了测试 这是一个错误还是我必须使用poly

请参阅此svg代码

<polyline id="poly" points="163.2 100 163.2 200"
     stroke-width="1" fill="none" stroke="red"></polyline>
将获得163.1999969482422。不是预期的163.2

并且(163.2==163.1999969482422)在javascript中为false

我在chrome和firefox上进行了测试


这是一个错误还是我必须使用
poly.getAttribute('points')
并将属性值字符串解析为数组?

为了提高速度和性能,大多数UAs将多段线点编码为IEEE-754格式浮动。163.2不能以32位IEEE-754格式的二进制格式准确表示。通过实验发现,163.2等于163.1999969482422。这就是值在内部存储的方式

但是,javascript将数字存储在64位IEEE-754二进制文件中,这允许更高的精度,因此最接近的32位值与最接近的64位值不完全匹配

var poly = document.getElementById('poly');
console.log(poly.points.getItem(0).x);