使用 mgo 精确计算小数

我正在编写一个应用程序,我在其中使用金钱并想要非常准确的数字。我也在使用 mgo 来存储一些应用程序后的结果。我想知道是否有办法math.Rat在结构中使用或 godec 并将其作为数字存储在 mgo 中?


这是我希望运行的代码类型:


package main


import(

  "fmt"

  "math/big"

  "labix.org/v2/mgo"

)


var mgoSession *mgo.Session


type Test struct{

  Budget big.Rat

}


func MongoLog(table string, pointer interface{}) {

  err := mgoSession.DB("db_log").C(table).Insert(pointer)

  if err != nil {

    panic(err)

  }

}


func main(){

  var err error

  mgoSession, err = mgo.Dial("localhost:27017")

  defer mgoSession.Close()

  if err != nil {

    panic(err)

  }


  cmp := big.NewRat(1, 100000)

  var test = Test{Budget : *big.NewRat(5, 10)}

  MongoLog("test", &test)

  for i := 0; i < 20; i++{

    fmt.Printf("Printf: %s\n", test.Budget.FloatString(10))

    fmt.Println("Println:", test.Budget, "\n")

    test.Budget.Sub(&test.Budget, cmp)

//    test.Budget = test.Budget - cpm

  }

  MongoLog("test", &test)

}


慕标琳琳
浏览 205回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go