정확하게 Go에 2 개의 float을 빼는 방법에 관심이 있습니다.Go 산술에서 부동 소수점 정밀도 다루기?
math/big
라이브러리를 사용하려고했지만 정확한 결과를 얻을 수 없습니다.
나는이 문제를 해결하는 자바 스크립트에서 big.js 라이브러리를 사용했습니다. Go 연산과 비슷한 라이브러리/메소드가 있습니까? x.Text ('g', 10와 같은
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
귀하의 의견은 귀하의 의견만큼 정확합니다. 귀하의 의견은 float64입니다. 정확성을 높이려면 float64로 시작하지 마십시오. – user2357112
@ user2357112 : 정확도는 이진 부동 포인트 (10 진수의 경우 근사치) 인 내부 표현의 함수이기도합니다. – peterSO