簡體   English   中英

如何舍入到最多 2 位小數,如有必要,使用 golang 投影 mongodb

[英]How to round to at most 2 decimal places, if necessary using golang projection mongodb

projectStage := bson.D{
{"$project", bson.D{
    {"_id", 0},
    {"name", "$_id"},
    {"total", 1},
    {"totalPagu", 1},
    {"idpagu", 1},
    {"pdn", bson.D{
        {"$round", bson.D{
            {"pdn", 1},
        }},
    },
    }},
},

}

我在這里收到一條錯誤消息:

$round only supports numeric types, not object

我該如何解決這個問題?

在 Go 編程語言中,您可以使用 fmt.Sprintf 函數將浮點數舍入到最多 2 位小數。

您還可以使用 math.Round 函數將浮點數四舍五入為最接近的整數,然后使用 fmt.Sprintf 將其轉換為具有所需小數位數的字符串。

$round運算符將一個數組作為其操作數,指定要舍入的數字和要舍入到的小數位:

{ $round : [ <number>, <place> ] }

您可以使用bson.A類型來指定數組(或簡單地[]any )。 所以使用下面的項目文檔:

projectStage := bson.D{
    {"$project", bson.D{
        {"_id", 0},
        {"name", "$_id"},
        {"total", 1},
        {"totalPagu", 1},
        {"idpagu", 1},
        {"pdn", bson.D{
            {"$round", bson.A{"$pdn", 2}},
        }},
    }},
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM