【问题标题】:Divide 2 big.Floats in go and preserve the resulting decimal除以 2 big.Floats 并保留结果小数
【发布时间】:2021-06-27 17:42:26
【问题描述】:

我有 2 个 big.Float 数字。

  • x。 93214.310998100256907925
  • 是的。 1.954478300965909786

我想知道 x y 的百分比是多少。这应该在 0.0020967578% 左右。划分这两个大浮点数时出现问题,答案始终为 0.xxx,但该方法返回 2.09675776180520477879426e-05。有什么想法可以解决这个问题吗?我尝试过转换为字符串然后返回,但这不是我不会包含的另一个兔子洞,因为我无法用它完成任何事情。我觉得有一种方法可以做到这一点,我错过了。我真的只需要 7 位小数的精度就可以了。

【问题讨论】:

  • 编辑问题以显示您尝试过的代码。

标签: go decimal precision


【解决方案1】:

为什么需要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
}

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多