我想要一種方法來精確地減去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