校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > golang 比較浮點數的大小方式

golang 比較浮點數的大小方式

熱門標簽:外呼系統用什么卡 電話機器人軟件免費 百度地圖標注后傳給手機 外呼系統顯本地手機號 壽光微信地圖標注 excel地圖標注分布數據 涿州代理外呼系統 阿克蘇地圖標注 評價高的400電話辦理

Golang浮點數比較和運算會出現誤差。

浮點數儲存至內存中時,2的-1、-2……-n次方不能精確的表示小數部分,所以再把這個數從地址中取出來進行計算就出現了偏差。

package main
import (
	"errors"
	"fmt"
	"github.com/shopspring/decimal"
)
func FloatCompare(f1, f2 interface{}) (n int, err error) {
	var f1Dec, f2Dec decimal.Decimal
	switch f1.(type) {
	case float64:
		f1Dec = decimal.NewFromFloat(f1.(float64))
		switch f2.(type) {
		case float64:
			f2Dec = decimal.NewFromFloat(f2.(float64))
		case string:
			f2Dec, err = decimal.NewFromString(f2.(string))
			if err != nil {
				return 2, err
			}
		default:
			return 2, errors.New("FloatCompare() expecting to receive float64 or string")
		}
	case string:
		f1Dec, err = decimal.NewFromString(f1.(string))
		if err != nil {
			return 2, err
		}
		switch f2.(type) {
		case float64:
			f2Dec = decimal.NewFromFloat(f2.(float64))
		case string:
			f2Dec, err = decimal.NewFromString(f2.(string))
			if err != nil {
				return 2, err
			}
		default:
			return 2, errors.New("FloatCompare() expecting to receive float64 or string")
		}
	default:
		return 2, errors.New("FloatCompare() expecting to receive float64 or string")
	}
	return f1Dec.Cmp(f2Dec), nil
}
func main() {
	a:=4.0
	b:="4"
	fmt.Println(FloatCompare(a,b))
}

補充:golang 判斷2個浮點型數字是否相同

判斷2個浮點型數字是否相同的方法(假定整數部分+小數點后3位相同,則視為相同)

首先將2個浮點型數字轉換為string數據

將float類型的數據轉換成string

func Decimal(value float32) string {
   value1 := fmt.Sprintf("%.6f", value)
   return value1
}

比較兩個由float型數據轉化成string的數據是否相同是否相同

func Compare(val1,val2 string) bool {
   indexf :=strings.Index(val1,".") + 4
   indexs :=strings.Index(val2,".") + 4
   if indexs != indexf {
      return false
   }else {
      if val1[0:indexf] == val2[0:indexs]{
         return true
      }else {
         return false
      }
   }
}

補充:golang 浮點數操作

數據庫中金額元存儲的數據結構使用的是decimal(15,2),golang中使用float64保存變量內容。通過轉換將 float64 -> int64

最簡單的方式:int64(float64 * 100),但是由于浮點數在計算機內的表示方式問題導致有一部分數據會出現問題,

例如:

var v = 67.6  
fmt.Println(int64(v *100)) 輸出結果為:6759
 

解決方法:

使用"github.com/shopspring/decimal"包,將對浮點數進行精確計算,例如:

f1 := decimal.NewFromFloat(v)
f2 := decimal.NewFromFloat(100)
fmt.Println(f1.Mul(f2).IntPart()) 輸出結果為6760

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • golang實現對docker容器心跳監控功能
  • 淺談golang 中time.After釋放的問題
  • golang 定時任務方面time.Sleep和time.Tick的優劣對比分析
  • golang日志包logger的用法詳解
  • golang elasticsearch Client的使用詳解
  • Golang的func參數及返回值操作
  • golang協程池模擬實現群發郵件功能
  • Golang: 內建容器的用法

標簽:欽州 蘭州 汕頭 雞西 重慶 吐魯番 梅河口 銅川

巨人網絡通訊聲明:本文標題《golang 比較浮點數的大小方式》,本文關鍵詞  golang,比較,浮,點數,的,大小,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang 比較浮點數的大小方式》相關的同類信息!
  • 本頁收集關于golang 比較浮點數的大小方式的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产一区二区视频在线播放| 日韩成人一区二区三区在线观看| 欧美一区二区三区在| 欧美在线观看视频一区二区 | 欧美性色黄大片| 色综合久久久久| 欧美色涩在线第一页| 欧美狂野另类xxxxoooo| 欧美巨大另类极品videosbest| 欧美老女人第四色| 欧美岛国在线观看| 久久蜜桃一区二区| 最新欧美精品一区二区三区| 亚洲丝袜精品丝袜在线| 亚洲国产中文字幕在线视频综合| 亚洲一区二区三区四区的| 亚洲国产欧美在线| 免费三级欧美电影| 国产大陆亚洲精品国产| www.亚洲精品| 欧美性色aⅴ视频一区日韩精品| 在线播放中文一区| 精品对白一区国产伦| 国产精品毛片久久久久久| 国产精品福利一区| 亚洲成人av一区| 久久99精品一区二区三区| jlzzjlzz亚洲女人18| 欧美视频一区在线观看| 日韩欧美国产综合| 亚洲欧洲三级电影| 日韩二区在线观看| 国产不卡视频在线观看| 欧美日韩在线直播| 欧美mv日韩mv国产| 亚洲人吸女人奶水| 久草中文综合在线| 色婷婷av一区二区三区之一色屋| 51精品秘密在线观看| 国产精品乱码久久久久久| 亚洲成精国产精品女| 国产精品一区二区在线播放| 一本一本大道香蕉久在线精品| 欧美一区二区三区免费| 亚洲欧美另类久久久精品| 久久99国产精品久久99 | 毛片av中文字幕一区二区| 激情成人综合网| 欧美日免费三级在线| 中文字幕在线一区免费| 美女被吸乳得到大胸91| 精品视频在线免费看| 国产三级三级三级精品8ⅰ区| 亚洲高清中文字幕| 成人激情校园春色| 欧美精品一区二区三区在线| 亚洲成人精品一区二区| 91尤物视频在线观看| 国产校园另类小说区| 极品少妇xxxx精品少妇| 欧美精品在线视频| 亚洲成在线观看| 欧美在线观看你懂的| 一区二区三区国产精品| 顶级嫩模精品视频在线看| 久久免费偷拍视频| 国产精品亚洲午夜一区二区三区 | 老司机精品视频导航| 欧美丰满一区二区免费视频| 一区二区三区四区不卡在线| 91麻豆6部合集magnet| 国产精品视频你懂的| 国产精品99久久久久久似苏梦涵 | 国产精品一区专区| 久久婷婷一区二区三区| 久久成人免费网| 日韩欧美一区二区久久婷婷| 美女在线观看视频一区二区| 日韩精品一区在线| 国产老妇另类xxxxx| 久久夜色精品国产噜噜av| 精品亚洲国产成人av制服丝袜| 7777精品伊人久久久大香线蕉完整版 | 99精品视频在线观看| 久久嫩草精品久久久久| 国产精品亚洲第一区在线暖暖韩国 | 欧洲国产伦久久久久久久| 亚洲男人天堂av网| 欧美人妇做爰xxxⅹ性高电影| 亚洲国产综合色| 欧美一级电影网站| 国产精品综合网| 中文字幕一区三区| 欧美三级三级三级爽爽爽| 美女在线观看视频一区二区| 久久久久久电影| 99精品欧美一区二区三区综合在线| 成人欧美一区二区三区视频网页| 色老综合老女人久久久| 图片区小说区区亚洲影院| 日韩精品一区二区三区中文精品| 久久爱另类一区二区小说| 国产精品二区一区二区aⅴ污介绍| www.视频一区| 午夜精品免费在线| 久久综合狠狠综合久久激情| 成人综合在线观看| 午夜精品久久久久久久| 久久久影视传媒| 色综合久久中文字幕综合网| 日本视频一区二区三区| 国产亚洲精品7777| 欧美中文字幕一二三区视频| 国产 欧美在线| 亚洲欧洲制服丝袜| 欧美大胆人体bbbb| av在线综合网| 男人操女人的视频在线观看欧美| 亚洲国产精品精华液ab| 欧美日韩第一区日日骚| 国产一区二区三区精品视频| 一级日本不卡的影视| 久久品道一品道久久精品| 91国偷自产一区二区开放时间| 久久国产精品99久久久久久老狼 | 成人免费av资源| 免费在线观看视频一区| 亚洲激情男女视频| 国产欧美精品国产国产专区| 3d成人h动漫网站入口| 色哟哟一区二区| 国产剧情一区二区| 久久精品国产77777蜜臀| 亚洲国产精品一区二区久久恐怖片| 国产精品无码永久免费888| 日韩欧美国产一区在线观看| 色嗨嗨av一区二区三区| 高清不卡一区二区| 久久aⅴ国产欧美74aaa| 日韩在线播放一区二区| 亚洲宅男天堂在线观看无病毒| 国产精品亲子伦对白| 久久久精品2019中文字幕之3| 日韩一区二区三区观看| 欧美日韩成人一区二区| 91国偷自产一区二区开放时间 | 亚洲一区二区综合| 亚洲图片欧美视频| 一区二区三区在线播放| 一区二区三区在线免费视频| 亚洲欧美欧美一区二区三区| 亚洲欧美日韩国产成人精品影院| 国产精品区一区二区三区| 国产精品初高中害羞小美女文| 国产调教视频一区| 亚洲国产精品t66y| 国产精品美日韩| 日韩美女久久久| 一区二区三区日韩欧美| 亚洲黄色免费网站| 亚洲一区二区三区四区的| 一区二区三区精品久久久| 亚洲综合网站在线观看| 午夜精品久久久久影视| 免费视频一区二区| 国产精品一区2区| 国产精品自拍在线| 99天天综合性| 色婷婷精品大在线视频| 777亚洲妇女| 精品国产人成亚洲区| 国产午夜三级一区二区三| 中文av一区二区| 日精品一区二区| 国产一区在线精品| av一区二区久久| 欧美日韩一区不卡| 欧美一区二区三区小说| 精品国产乱码91久久久久久网站| 精品美女一区二区| av电影一区二区| 欧美疯狂做受xxxx富婆| 91理论电影在线观看| 老司机免费视频一区二区| 蜜桃精品视频在线| 91在线观看高清| 9久草视频在线视频精品| 欧美性videosxxxxx| 91麻豆精品国产91久久久久| av网站免费线看精品| 欧美精品乱人伦久久久久久| 久久毛片高清国产| 日日摸夜夜添夜夜添国产精品| 国产夫妻精品视频| 欧美视频你懂的| 国产精品视频免费看| 老司机精品视频在线| 在线观看视频一区二区| 中文字幕不卡在线观看| 日韩高清不卡一区二区三区|