我想在go中做一些“精确划分”。有标准类型吗?
例如,我想存储值“1/3”和“2/3”并能够将它们相加。
我可以这样定义我自己的类型:
type MyType struct {
Numerator int
Denominator int
}
并定义如下函数:
func (a MyType) Plus(b MyType) MyType {
d := a.Denominator * b.Denominator
n := (a.Numerator * b.Denominator) + (b.Numerator * a.Denominator)
return MyType{Numerator: n, Denominator: d}
}
但是可能有一种更优雅的方法可以做到这一点,或者已经可以做到这一点的“标准类型”。
我不知道
big.Rat
。这就是我所需要的!谢谢你的帮助