在 go 中除以 2 big.Floats 并保留所得的小数
Divide 2 big.Floats in go and preserve the resulting decimal
我有 2 个 big.Float 个号码。
- x。 93214.310998100256907925
- 是的。 1.954478300965909786
我想知道 x y 的百分比是多少。这应该在 0.0020967578% 左右。将这 2 个大浮点数相除时出现问题,答案总是 0.xxx 但方法 returns 2.09675776180520477879426e-05。有解决这个问题的想法吗?我试过先转换为字符串然后再转换回来,但这不是我不会包括的另一个兔子洞,因为我无法用它完成任何事情。我觉得我缺少一种方法可以做到这一点。我真的只需要 7 位小数的精度,这有帮助。
为什么需要 big.Float
?甚至 float32
似乎都很好:
package main
import "fmt"
func percent(y, x float32) float32 {
return y / x * 100
}
func main() {
p := percent(1.954478300965909786, 93214.310998100256907925)
fmt.Println(p) // 0.0020967575
}
我有 2 个 big.Float 个号码。
- x。 93214.310998100256907925
- 是的。 1.954478300965909786
我想知道 x y 的百分比是多少。这应该在 0.0020967578% 左右。将这 2 个大浮点数相除时出现问题,答案总是 0.xxx 但方法 returns 2.09675776180520477879426e-05。有解决这个问题的想法吗?我试过先转换为字符串然后再转换回来,但这不是我不会包括的另一个兔子洞,因为我无法用它完成任何事情。我觉得我缺少一种方法可以做到这一点。我真的只需要 7 位小数的精度,这有帮助。
为什么需要 big.Float
?甚至 float32
似乎都很好:
package main
import "fmt"
func percent(y, x float32) float32 {
return y / x * 100
}
func main() {
p := percent(1.954478300965909786, 93214.310998100256907925)
fmt.Println(p) // 0.0020967575
}