第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mongodb mongo-go-driver Decimal128 中的高低值是多少以及如何使用

mongodb mongo-go-driver Decimal128 中的高低值是多少以及如何使用

Go
暮色呼如 2022-04-26 20:00:10
MongoDB 的 GO 驅(qū)動程序有一個Decimal128類型,它是一個如下所示的結(jié)構(gòu):type Decimal128 struct {    h, l uint64}根據(jù)文檔, h 和 l 是 uint64 的高值和低值。這兩個值代表什么?假設(shè)我想創(chuàng)建一個 Decimal128 ,當轉(zhuǎn)換為字符串時將等于"100.50". 使用下面的函數(shù),h 和 l 的值是多少。func NewDecimal128(h, l uint64) Decimal128 {    return Decimal128{h: h, l: l}} 我總是被迫解析這樣的字符串d, _ := primitive.ParseDecimal128("100.50")而不是d := primitive.NewDecimal128(h, l) 創(chuàng)建一個新的 Decimal128 只是因為我不明白如何使用高值和低值來導(dǎo)出十進制值。
查看完整描述

1 回答

?
吃雞游戲

TA貢獻1829條經(jīng)驗 獲得超7個贊

Decimal128.h兩者Decimal128.l都是 type uint64,都有 64 位,加起來是 128 位。


| Decimal128.h bits   || Decimal128.l bits   |

63...            ....0  63...           ....0

Mongo-go 的實現(xiàn)Decimal128類似于/接近IEEE 754 四精度浮點格式,但有一些細微差別。最高位h是符號位,然后有 2 位被忽略,然后是 14 位指數(shù)和 111 位有效數(shù)。符號位旁邊的后續(xù) 5 位是特殊的,如果它們的值為0x1f,則表示該Decimal128值表示 NaN(不是數(shù)字),如果它們的值為0x1e,則該值表示正無窮或負無窮大(取決于符號位)。


查看該Decimal128.BigInt()方法的實現(xiàn)以獲取詳細信息。


如您所見,“單個”低值和高值與表示的浮點數(shù)沒有直接關(guān)系,而是按上述方式處理它們的 128 位。


例如,低值和高值"100.50"將是:


d, err := primitive.ParseDecimal128("100.50")

fmt.Println(d, err)

fmt.Printf("%#v", d)

輸出(在Go Playground上試試):


100.50 <nil>

primitive.Decimal128{h:0x303c000000000000, l:0x2742}


查看完整回答
反對 回復(fù) 2022-04-26
  • 1 回答
  • 0 關(guān)注
  • 468 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號