精度问题
设置是一个物理 i 按钮(1 线规范),带有制造商印刷的十六进制值(可信值)。物联网设备将二进制编码为十进制 - Golang 将接收到的值返回为十六进制。
接收到的十进制值为:
var V = 10736581604118680000
fmt.Sprintf("%016X", m.V)[2:14]) // adds uppercase and truncation of output
提供 000015877CD1
预期的可信输出是 000015877CD0
钥匙上刻有的十六进制是 95 000015877CD0 01
http://www.rapidtables.com/convert/number/decimal-to-hex.htm(可信?)表示使用的golang函数丢失了精度。编码为 19 位十进制数字的二进制值可以被 Golang 转换为十六进制而不会损失精度(使用上面的函数)
翻阅古今
相关分类