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

 更新时间:2020年12月21日 14:42:35   作者:疯狂的鸭血  
这篇文章主要介绍了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)
}

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

相关文章

  • Golang中int类型和字符串类型相互转换的实现方法

    Golang中int类型和字符串类型相互转换的实现方法

    在日常开发中,经常需要将数字转换为字符串或者将字符串转换为数字,在 Golang 中,有一些很简便的方法可以实现这个功能,接下来就详细讲解一下如何实现 int 类型和字符串类型之间的互相转换,需要的朋友可以参考下
    2023-09-09
  • Go 语言前缀树实现敏感词检测

    Go 语言前缀树实现敏感词检测

    这篇文章主要为大家介绍了Go语言前缀树实现敏感词检测实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • go语言题解LeetCode1128等价多米诺骨牌对的数量

    go语言题解LeetCode1128等价多米诺骨牌对的数量

    这篇文章主要为大家介绍了go语言题解LeetCode1128等价多米诺骨牌对的数量示例详解,
    2022-12-12
  • Golang 获取文件md5校验的方法以及效率对比

    Golang 获取文件md5校验的方法以及效率对比

    这篇文章主要介绍了Golang 获取文件md5校验的方法以及效率对比,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • Go中匿名结构体的使用技巧

    Go中匿名结构体的使用技巧

    这篇文章主要给大家分享一个使用匿名结构体,提升Go编程效率的小技巧,没什么技术深度,属于在日常写代码过程中积累下来的一个提升自己编程效率的小经验
    2023-08-08
  • Golang新提案:panic 能不能加个 PanicError?

    Golang新提案:panic 能不能加个 PanicError?

    这篇文章主要为大家介绍了Golang的新提案关于panic能不能加个PanicError的问题分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Go语言学习之JSON编码解析与使用

    Go语言学习之JSON编码解析与使用

    这篇文章主要为大家详细介绍了Go语言中JSON编码的解析与使用已经JSON与Map、结构体的互相转化,文中的示例代码讲解详细,需要的可以参考一下
    2023-02-02
  • Go语言中获取IP地址的方法详解

    Go语言中获取IP地址的方法详解

    这篇文章主要为大家详细介绍了Go语言中获取IP地址的相关方法,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • Go实现并发缓存的示例代码

    Go实现并发缓存的示例代码

    高并发数据存储是现代互联网应用开发中常遇到的一大挑战,本文主要介绍了Go实现并发缓存的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Go语言操作MySQL的知识总结

    Go语言操作MySQL的知识总结

    Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。本文介绍了Go语言操作MySQL的相关知识,感兴趣的可以了解一下
    2022-11-11

最新评论