欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

go語(yǔ)言小數(shù)運(yùn)算,go語(yǔ)言位運(yùn)算

【10】Go語(yǔ)言運(yùn)算符及運(yùn)算符的優(yōu)先級(jí)

運(yùn)算符用于在程序運(yùn)行時(shí)執(zhí)行數(shù)學(xué)或邏輯運(yùn)算。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),武穴企業(yè)網(wǎng)站建設(shè),武穴品牌網(wǎng)站建設(shè),網(wǎng)站定制,武穴網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,武穴網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

1.算術(shù)運(yùn)算符

Go 語(yǔ)言的算術(shù)運(yùn)算符如圖,假設(shè)A值為10,B值為20。

2.關(guān)系運(yùn)算符

Go 語(yǔ)言的關(guān)系運(yùn)算符如圖,假設(shè)A值為10,B值為20。

3.邏輯運(yùn)算符

Go 語(yǔ)言的邏輯運(yùn)算符如圖。假定A值為T(mén)rue,B值為False。

4.位運(yùn)算符

位運(yùn)算符對(duì)整數(shù)在內(nèi)存中的二進(jìn)制位進(jìn)行操作。

位運(yùn)算符比一般的算術(shù)運(yùn)算符速度要快,而且可以實(shí)現(xiàn)一些算術(shù)運(yùn)算符不能實(shí)現(xiàn)的功能。如果要開(kāi)發(fā)高效率程序,位運(yùn)算符是必不可少的。

Go 語(yǔ)言的位運(yùn)算符如圖。假定 A = 60,B = 13,其二進(jìn)制數(shù)轉(zhuǎn)換如下。

A = 0011 1100

B = 0000 1101

5.賦值運(yùn)算符

Go 語(yǔ)言的賦值運(yùn)算符如圖。

6.其他運(yùn)算符

Go 語(yǔ)言的其他運(yùn)算符如圖。

運(yùn)算符的優(yōu)先級(jí)

所謂優(yōu)先級(jí),就是當(dāng)多個(gè)運(yùn)算符出現(xiàn)在同一個(gè)表達(dá)式中時(shí),先執(zhí)行哪個(gè)運(yùn)算符。

go使用decimal

在公司項(xiàng)目中看到關(guān)于錢(qián)的數(shù)據(jù)在接口展示、添加修改的各種情況下結(jié)構(gòu)體中相應(yīng)字段用的都是string類(lèi)型。覺(jué)得不太合理,因此查閱了一些資料,整理如下。

在網(wǎng)上搜到一篇博客:

在程序計(jì)算中涉及到錢(qián)的時(shí)候,為什么要用Decimal而不是Float

博客中介紹,如果用float類(lèi)型再轉(zhuǎn)為decimal類(lèi)型時(shí)會(huì)造成精度丟失。轉(zhuǎn)為string后再轉(zhuǎn)為decimal則可以解決問(wèn)題,保證精度??粗孟袷呛芡昝赖幕卮鹆宋蚁胍私獾膯?wèn)題,但仔細(xì)一看用的語(yǔ)言是python,于是我便親自試了下:

結(jié)果確實(shí)如此,但看版本是2.7,我懷疑是不是python2.7版本落后,因此存在問(wèn)題,于是又換了python3,再次測(cè)試:

結(jié)論依然是一樣。好吧,證實(shí)了,對(duì)于python確實(shí)應(yīng)該先轉(zhuǎn)為string再轉(zhuǎn)為decimal。

但是,python是這樣,難道go也是這樣嗎,于是我又開(kāi)始了進(jìn)一步測(cè)試:

go中decimal使用第三方庫(kù)

這里是直接用float64轉(zhuǎn)為decimal,并沒(méi)有通過(guò)string中轉(zhuǎn),結(jié)果輸出如下:

乍一看,看著好像是精度丟失了似的,但是對(duì)比后我們發(fā)現(xiàn),float64和decimal前后都是一致的,也就是說(shuō)float64轉(zhuǎn)為decimal之后,保持了原樣。那些看起來(lái)小數(shù)點(diǎn)后位數(shù)很多的結(jié)果,是因?yàn)閒loat64浮點(diǎn)類(lèi)型計(jì)算產(chǎn)生的問(wèn)題,跟轉(zhuǎn)換并沒(méi)有關(guān)系。

為了驗(yàn)證這一結(jié)論,我又寫(xiě)了下面的測(cè)試:

不使用浮點(diǎn)類(lèi)型相加,而用decimal類(lèi)型相加,這樣輸出結(jié)果果然沒(méi)問(wèn)題了:

因此我們可以得出結(jié)論:對(duì)于go語(yǔ)言,在把float轉(zhuǎn)換為decimal類(lèi)型時(shí),并不需要像python一樣通過(guò)string中轉(zhuǎn),也依然可以保持精度。進(jìn)一步,我們也可以想到上面的問(wèn)題,對(duì)于錢(qián),在結(jié)構(gòu)體字段中,我們完全可以直接使用float類(lèi)型,并不需要用string類(lèi)型。而且好處時(shí),使用float數(shù)值類(lèi)型,無(wú)論對(duì)于前端還是后端,在進(jìn)行數(shù)值范圍驗(yàn)證的時(shí)候,會(huì)更方便,不必把string轉(zhuǎn)為float后再驗(yàn)證了。

上面提到了decimal包,我們這里簡(jiǎn)單看下,里面的常用的方法:

定義decimal的幾種方式:

decimal數(shù)值運(yùn)算

比較:

我們?cè)倏聪赂↑c(diǎn)精度運(yùn)算不準(zhǔn)確的原因,這篇文章講解的比較細(xì)

浮點(diǎn)精度(float、double)運(yùn)算不精確的原因

精度運(yùn)算不準(zhǔn)確這是為什么呢?我們接下來(lái)就需要從計(jì)算機(jī)所有數(shù)據(jù)的表現(xiàn)形式二進(jìn)制說(shuō)起了。如果大家很了解二進(jìn)制與十進(jìn)制的相互轉(zhuǎn)換,那么就能輕易的知道精度運(yùn)算不準(zhǔn)確的問(wèn)題原因是什么了。

接下來(lái)我們看一個(gè)簡(jiǎn)單的例子 2.1 這個(gè)十進(jìn)制數(shù)轉(zhuǎn)成二進(jìn)制是什么樣子的。

落入無(wú)限循環(huán)結(jié)果為 10.0001100110011........ , 我們的計(jì)算機(jī)在存儲(chǔ)小數(shù)時(shí)肯定是有長(zhǎng)度限制的,所以會(huì)進(jìn)行截取部分小數(shù)進(jìn)行存儲(chǔ),從而導(dǎo)致計(jì)算機(jī)存儲(chǔ)的數(shù)值只能是個(gè)大概的值,而不是精確的值。從這里看出來(lái)我們的計(jì)算機(jī)根本就無(wú)法使用二進(jìn)制來(lái)精確的表示 2.1 這個(gè)十進(jìn)制數(shù)字的值,連表示都無(wú)法精確表示出來(lái),計(jì)算肯定是會(huì)出現(xiàn)問(wèn)題的。

1、為什么數(shù)值表示用decimal 不用double

2、在程序計(jì)算中涉及到錢(qián)的時(shí)候,為什么要用Decimal而不是Float

3、MySQL數(shù)據(jù)類(lèi)型DECIMAL用法

4、浮點(diǎn)精度(float、double)運(yùn)算不精確的原因

Golang標(biāo)準(zhǔn)庫(kù)——math

返回x和y中最大值,特例如下:

返回x和y中最小值,特例如下:

返回一個(gè)標(biāo)準(zhǔn)化小數(shù)frac和2的整型指數(shù)exp,滿(mǎn)足f == frac * 2**exp,且0.5 = Abs(frac) 1;特例如下:

第一類(lèi)貝塞爾函數(shù),n階。特例如下:

MaxBase是字符串轉(zhuǎn)換函數(shù)接受的最大進(jìn)制。

創(chuàng)建一個(gè)值為x的*Int。

將z設(shè)為-x并返回z。

返回一個(gè)uint32類(lèi)型的非負(fù)的32位偽隨機(jī)數(shù)。

返回一個(gè)取值范圍在[0,n)的偽隨機(jī)int值,如果n=0會(huì)panic。

Go語(yǔ)言基礎(chǔ)語(yǔ)法(一)

本文介紹一些Go語(yǔ)言的基礎(chǔ)語(yǔ)法。

先來(lái)看一個(gè)簡(jiǎn)單的go語(yǔ)言代碼:

go語(yǔ)言的注釋方法:

代碼執(zhí)行結(jié)果:

下面來(lái)進(jìn)一步介紹go的基礎(chǔ)語(yǔ)法。

go語(yǔ)言中格式化輸出可以使用 fmt 和 log 這兩個(gè)標(biāo)準(zhǔn)庫(kù),

常用方法:

示例代碼:

執(zhí)行結(jié)果:

更多格式化方法可以訪(fǎng)問(wèn)中的fmt包。

log包實(shí)現(xiàn)了簡(jiǎn)單的日志服務(wù),也提供了一些格式化輸出的方法。

執(zhí)行結(jié)果:

下面來(lái)介紹一下go的數(shù)據(jù)類(lèi)型

下表列出了go語(yǔ)言的數(shù)據(jù)類(lèi)型:

int、float、bool、string、數(shù)組和struct屬于值類(lèi)型,這些類(lèi)型的變量直接指向存在內(nèi)存中的值;slice、map、chan、pointer等是引用類(lèi)型,存儲(chǔ)的是一個(gè)地址,這個(gè)地址存儲(chǔ)最終的值。

常量是在程序編譯時(shí)就確定下來(lái)的值,程序運(yùn)行時(shí)無(wú)法改變。

執(zhí)行結(jié)果:

執(zhí)行結(jié)果:

Go 語(yǔ)言的運(yùn)算符主要包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符以及指針相關(guān)運(yùn)算符。

算術(shù)運(yùn)算符:

關(guān)系運(yùn)算符:

邏輯運(yùn)算符:

位運(yùn)算符:

賦值運(yùn)算符:

指針相關(guān)運(yùn)算符:

下面介紹一下go語(yǔ)言中的if語(yǔ)句和switch語(yǔ)句。另外還有一種控制語(yǔ)句叫select語(yǔ)句,通常與通道聯(lián)用,這里不做介紹。

if語(yǔ)法格式如下:

if ... else :

else if:

示例代碼:

語(yǔ)法格式:

另外,添加 fallthrough 會(huì)強(qiáng)制執(zhí)行后面的 case 語(yǔ)句,不管下一條case語(yǔ)句是否為true。

示例代碼:

執(zhí)行結(jié)果:

下面介紹幾種循環(huán)語(yǔ)句:

執(zhí)行結(jié)果:

執(zhí)行結(jié)果:

也可以通過(guò)標(biāo)記退出循環(huán):

--THE END--

網(wǎng)頁(yè)題目:go語(yǔ)言小數(shù)運(yùn)算,go語(yǔ)言位運(yùn)算
當(dāng)前地址:http://chinadenli.net/article46/hohphg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、企業(yè)網(wǎng)站制作、外貿(mào)建站、Google、ChatGPT、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化