golang int 转float 强转和高精度转操作

golang int 转float

方法一:

强转:

代码如下:

import "fmt"
func main() {
 var money int
 money = 1
 fmt.Println(float64(money) / float64(100))
}

输出结果:0.01

方法二:

高精度转:

代码如下:

import (
 "fmt"
 "math/big"
 "strconv"
)
func main() {
 totalAmount := 1
 numrator, _ := new(big.Float).SetPrec(uint(1024)).SetString(strconv.Itoa(totalAmount))
 denominator := big.NewFloat(100)
 denominator1 := numrator.Quo(numrator, denominator)
 fmt.Println(denominator1)
}

输出结果:0.01

补充:golang float32/64与[]byte互转

网络协议开发中经常需要将int、float、bool等转为二进制数据,float32、64 与[]byte处理:

import (
  "encoding/binary"
  "math"
)

func Float32ToByte(float float32) []byte {
  bits := math.Float32bits(float)
  bytes := make([]byte, 4)
  binary.LittleEndian.PutUint32(bytes, bits)

  return bytes
}

func ByteToFloat32(bytes []byte) float32 {
  bits := binary.LittleEndian.Uint32(bytes)

  return math.Float32frombits(bits)
}

func Float64ToByte(float float64) []byte {
  bits := math.Float64bits(float)
  bytes := make([]byte, 8)
  binary.LittleEndian.PutUint64(bytes, bits)

  return bytes
}

func ByteToFloat64(bytes []byte) float64 {
  bits := binary.LittleEndian.Uint64(bytes)

  return math.Float64frombits(bits)
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • go语言中int和byte转换方式

    主机字节序 主机字节序模式有两种,大端数据模式和小端数据模式,在网络编程中应注意这两者的区别,以保证数据处理的正确性:例如网络的数据是以大端数据模式进行交互,而我们的主机大多数以小端模式处理,如果不转换,数据会混乱 参考 :一般来说,两个主机在网络通信需要经过如下转换过程:主机字节序 -> 网络字节序 -> 主机字节序 大端小端区别 大端模式:Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端 低地址 --------------------> 高地址 高

  • golang实现整型和字节数组之间的转换操作

    我就废话不多说了,大家还是直接看代码吧~ //isSymbol表示有无符号 func BytesToInt(b []byte, isSymbol bool) (int, error){ if isSymbol { return bytesToIntS(b) } return bytesToIntU(b) } //字节数(大端)组转成int(无符号的) func bytesToIntU(b []byte) (int, error) { if len(b) == 3 { b = append([]b

  • Go语言string,int,int64 ,float之间类型转换方法

    (1)int转string s := strconv.Itoa(i) 等价于s := strconv.FormatInt(int64(i), 10) (2)int64转string i := int64(123) s := strconv.FormatInt(i, 10) 第二个参数为基数,可选2~36 注:对于无符号整形,可以使用FormatUint(i uint64, base int) (3)string转int i, err := strconv.Atoi(s) (4)string转in

  • golang int 转float 强转和高精度转操作

    golang int 转float 方法一: 强转: 代码如下: import "fmt" func main() { var money int money = 1 fmt.Println(float64(money) / float64(100)) } 输出结果:0.01 方法二: 高精度转: 代码如下: import ( "fmt" "math/big" "strconv" ) func main() { totalAm

  • 浅谈python 四种数值类型(int,long,float,complex)

    Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下. 数字数据类型存储数值.他们是不可改变的数据类型,这意味着改变数字数据类型的结果,在一个新分配的对象的值. Number对象被创建,当你给他们指派一个值.例如: var1 = 1 var2 = 10 您也可以删除数字对象的参考,使用del语句. del语句的语法是: del var1[,var2[,var3[

  • Go语言中int、float、string类型之间相互的转换

    目录 前言 整形转字符串 fmt.Sprintf 使用方法 strconv.Itoa 使用方法 strconv.FormatInt 入参 使用方法 浮点型转字符串 fmt.Sprintf 入参 使用方法 字符串转整形 strconv.Atoi 使用方法 strconv.ParseInt 使用方法 字符串转浮点型 strconv.ParseFloat 使用方法 总结 前言 Go 开发中经常设计到类型转换,本文就重点记录下 整形.浮点型和字符串类型互相转换的方法. 整形转字符串 fmt.Sprint

  • go中string、int、float相互转换的实现示例

    目录 string转其它 string --> int:将字符串13转换为int类型的数值13 string --> int64:将字符串13转换为int64(十进制) string --> float64.float32 int.int64转其它 int --> string int64 --> string float转其它 float --> string float64 --> int64(会有精度损失) 之前很多次用到的时候总会忘一些,这次记下来,后面再

  • QT中QByteArray与char、int、float之间的互相转化

    目录 1.问题来源 2.QByteArray与char*的转换 2.1 QByteArray 转 char* 2.2 char* 转 QByteArray 3.QByteArray与int 以及int[] 的转换 3.1. int 与 QByteArray 互转 3.2. int[] 与 QByteArray 互转 4.QByteArray与float 以及float[] 的转换 4.1. float[] 与 QByteArray 互转 4.2. float 与 QByteArray 互转 1.

  • Python中Timedelta转换为Int或Float方式

    目录 Timedelta转换为Int或Float方式 Pandas处理 Numpy处理 区别 timedelta.float 互转 Timedelta转换为Int或Float方式 Pandas处理 import pandas as pd dataSet['t'] =dataSet['time'].astype('timedelta64[D]').astype(float) dataSet['t'] .head() Numpy处理 import numpy as np dataSet['t']=(

  • 使用golang实现在屏幕上打印进度条的操作

    GoSimplePrint是一款用go写的开源简单进度条打印包.我可以利用它,在自己项目中需要加入进度条功能. 1.安装 go get -u github.com/redmask-hb/GoSimplePrint/goPrint 2.初始化 bar:=goPrint.NewBar(20) 这里的20,是我们满进度条的数值.如果我们要让进度条走满的时候值是100,那么应该NewBar(100) 3.配置参数 (1)设置 bar.SetGraph(graph string)  //设置进度条图块,默

  • Golang获取目录下的文件及目录信息操作

    一.获取当前目录下的文件或目录信息(不包含多级子目录) func main() { pwd,_ := os.Getwd() //获取文件或目录相关信息 fileInfoList,err := ioutil.ReadDir(pwd) if err != nil { log.Fatal(err) } fmt.Println(len(fileInfoList)) for i := range fileInfoList { fmt.Println(fileInfoList[i].Name()) //打印

  • Golang 使用Map实现去重与set的功能操作

    假设现在有一个需求 将以下 url 保存起来,要求不重复 www.baidu.com www.sina.com.cn www.hao123.com www.baidu.com www.hao123.com 可以利用 map 的 key 唯一性的问题处理 package main var set = map[string]bool { } func main() { ... url := xxx if set[url] { // 表示集合中已经存在 return } set[url] = true

随机推荐