Golang浮点数比较和运算会出现误差。
浮点数储存至内存中时,2的-1、-2……-n次方不能精确的表示小数部分,所以再把这个数从地址中取出来进行计算就出现了偏差。
package main
import (
errors
fmt
github.com/shopspring/decimal
)
func FloatCompare(f1, f2 interface{}) (n int, err error) {
var f1Dec, f2Dec decimal.Decimal
switch f1.(type) {
case float64:
f1Dec = decim
- 1
- 2
前往页