我想要一种方法来精确地减去Go中的2个浮点数。在Go算法中处理浮点数精度?
我试过使用math/big
库,但我无法得到准确的结果。
我用Javascript中的big.js库来解决这个问题。 Go算法有类似的库/方法吗?
package main
import (
"fmt"
"math/big"
)
func main() {
const prec = 200
a := new(big.Float).SetPrec(prec).SetFloat64(5000.0)
b := new(big.Float).SetPrec(prec).SetFloat64(4000.30)
result := new(big.Float).Sub(a, b)
fmt.Println(result)
}
Result: 999.6999999999998181010596454143524169921875
https://play.golang.org/p/vomAr87Xln
您的输出与输入信息一样准确。你的输入是float64s。如果你想要更精确的话,不要以float64s开头。 – user2357112
@ user2357112:精度也是内部表示的函数,它是二进制浮点数(对于十进制,近似值)。 – peterSO