SVG多段线/多边形';s点dom值与点属性值不同
请参阅此svg代码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
<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);