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绘制数列趋势图的操作步骤

    Golang绘制数列趋势图的操作步骤

    数列趋势图是用来表示数列中各项之间的变化趋势的图形,它可以帮助我们观察和分析数列的规律和特点,一般来说,数列趋势图可以分为两种类型:折线图和散点图,本文给大家介绍了Golang绘制数列趋势图的操作步骤,文中有详细的代码示例,需要的朋友可以参考下
    2024-04-04
  • Golang中的sync.WaitGroup用法实例

    Golang中的sync.WaitGroup用法实例

    这篇文章主要介绍了Golang中的sync.WaitGroup用法实例,WaitGroup的用途,它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成,需要的朋友可以参考下
    2015-07-07
  • Golang Map value不可寻址使用指针类型代替示例详解

    Golang Map value不可寻址使用指针类型代替示例详解

    这篇文章主要为大家介绍了Golang Map value不可寻址使用指针类型代替示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Go语言中三种不同md5计算方式的性能比较

    Go语言中三种不同md5计算方式的性能比较

    md5计算在我们日常工作的时候经常能遇到,下面这篇文章主要介绍了Go语言中三种不同md5计算方式的性能比较,需要的朋友可以参考借鉴,下面来一起学习学习吧。
    2017-01-01
  • 浅谈Go切片的值修改是否会覆盖数组的值 

    浅谈Go切片的值修改是否会覆盖数组的值 

    本文主要介绍了浅谈Go切片的值修改是否会覆盖数组的值,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 
    2022-02-02
  • VS Code配置Go语言开发环境的详细教程

    VS Code配置Go语言开发环境的详细教程

    这篇文章主要介绍了VS Code配置Go语言开发环境的详细教程,本文通过实例代码图文相结合的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • golang1.23版本之前 Timer Reset方法无法正确使用

    golang1.23版本之前 Timer Reset方法无法正确使用

    在Go 1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避免潜在的问题,然而,这在实际代码中难以实现,因为设置定时器状态和发送channel的操作并不是原子的,在某些情况下,这会导致timer在不应该触发时提前触发
    2025-01-01
  • Go语言Goroutinue和管道效率详解

    Go语言Goroutinue和管道效率详解

    这篇文章主要为大家介绍了Go语言Goroutinue和管道效率使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Go语言Grpc Stream的实现

    Go语言Grpc Stream的实现

    本文主要介绍了Go语言Grpc Stream的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • go语言实现十大常见的排序算法示例

    go语言实现十大常见的排序算法示例

    这篇文章主要为大家介绍了go语言实现十大常见的排序算法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论