当前位置: 首页 > wzjs >正文

品牌网站都有哪些东莞建设网首页

品牌网站都有哪些,东莞建设网首页,保定网站关键词优化,ios开发者账号续费Go语言提供了两种浮点数类型:float32和float64,分别对应IEEE-754标准的单精度和双精度浮点数。 1. 浮点数类型概述 1.1. float32 (单精度浮点数) 1. 占用32位即4字节的存储空间; 2. 大约提供6-7位十进制精度&#…

Go语言提供了两种浮点数类型:float32和float64,分别对应IEEE-754标准的单精度和双精度浮点数。

1. 浮点数类型概述

1.1. float32 (单精度浮点数)

1. 占用32位即4字节的存储空间;

2. 大约提供6-7位十进制精度;

3. 范围约为 ±1.18e-38 到 ±3.4e38;

1.2. float64 (双精度浮点数)

1. 占用64位即8字节存储空间;

2. 大约提供15-16位十进制精度;

3. 范围约为 ±2.23e-308 到 ±1.8e308;

2. 浮点数声明与初始化

var f1 float32 = 3.14
var f2 float64 = 3.141592653589793// 简写形式(默认为float64)
f3 := 3.14  // float64

3. 浮点数精度问题

由于浮点数的二进制表示特性,某些十进制小数无法精确表示:

func main() {f := 0.1sum := f + f + ffmt.Println(sum) // 输出: 0.30000000000000004
}

如果要解决浮点数运算的精度问题,可以使用第三方的包 decimal 。

package main
import ("fmt" "github.com/shopspring/decimal"
)
func main() {// 加法var num1 float64 = 3.1var num2 float64 = 4.2num3 := decimal.NewFromFloat(num1).Add(decimal.NewFromFloat(num2))fmt.Println(num3)// 减去m1 := 8.2m2 := 3.8m3 := decimal.NewFromFloat(m1).Sub(decimal.NewFromFloat(m2))fmt.Println(m3)
}

4. 特殊浮点数值

Go浮点数支持IEEE-754定义的特殊值:

1. 正无穷大(+Inf)和负无穷大(-Inf)

2. 非数(NaN, Not a Number)

func main() {posInf := math.Inf(1)   // 正无穷negInf := math.Inf(-1)  // 负无穷nan := math.NaN()       // 非数fmt.Println(posInf, negInf, nan)
}

5. 浮点数比较

由于精度问题,直接比较浮点数可能不可靠:

// 不推荐的比较方式
if a == b { ... }// 推荐的比较方式(使用允许的误差范围)
const epsilon = 1e-9
if math.Abs(a-b) < epsilon { ... }

对于NaN的比较:

if math.IsNaN(x) { ... }

6. 数学运算

Go的math包提供了丰富的浮点数运算函数:

func main() {a := 2.0b := 3.0fmt.Println(math.Sqrt(a))      // 平方根fmt.Println(math.Pow(a, b))    // 幂运算fmt.Println(math.Sin(a))       // 正弦fmt.Println(math.Log(a))       // 自然对数fmt.Println(math.Floor(a))     // 向下取整fmt.Println(math.Ceil(a))      // 向上取整fmt.Println(math.Mod(a, b))    // 取模
}

7. 类型转换

func main() {var f32 float32 = 1.5var f64 float64 = 2.7// float32转float64f64 = float64(f32)// float64转float32(可能丢失精度)f32 = float32(f64)// 整数转浮点数i := 10f32 = float32(i)f64 = float64(i)
}

8. 格式化输出

func main() {f := 123.456fmt.Printf("%f\n", f)    // 默认格式: 123.456000fmt.Printf("%.2f\n", f)  // 保留两位小数: 123.46fmt.Printf("%e\n", f)    // 科学计数法: 1.234560e+02fmt.Printf("%g\n", f)    // 根据情况选择%f或%e: 123.456
}

9. 最佳实践

1. 在大多数情况下,优先使用float64以获得更高的精度;

2. 避免直接比较浮点数,应使用允许的误差范围;

3. 注意浮点数的精度限制,特别是涉及金钱计算时;

4. 对于需要精确十进制计算的场景,考虑使用math/big包;

10. 性能考虑

1. float32占用更少内存,适合大量数据存储;

2. float64提供更高精度,是Go中默认的浮点类型;

3. 在现代CPU上,float32和float64的运算性能差异通常不大;

通过理解Go语言中浮点数的这些特性和行为,可以避免常见的精度问题,并编写出更可靠的数值计算代码。


文章转载自:

http://g3izjOqG.pfnrj.cn
http://D9NwgmpK.pfnrj.cn
http://aWYbBxNW.pfnrj.cn
http://60O0x0E3.pfnrj.cn
http://ITyD245Q.pfnrj.cn
http://toDR5U8j.pfnrj.cn
http://QOMdCwuB.pfnrj.cn
http://AqQSmrKy.pfnrj.cn
http://c3BDG4G7.pfnrj.cn
http://2RmR6G8i.pfnrj.cn
http://pfdcvhyG.pfnrj.cn
http://BRfapBmW.pfnrj.cn
http://stSujvtV.pfnrj.cn
http://00ws036n.pfnrj.cn
http://V11l4ytQ.pfnrj.cn
http://PI15gOrz.pfnrj.cn
http://LZR0hm6C.pfnrj.cn
http://cCCYOZuH.pfnrj.cn
http://Wi75sy8m.pfnrj.cn
http://V89KYZJw.pfnrj.cn
http://cDUYzYKo.pfnrj.cn
http://Jz58S2s7.pfnrj.cn
http://t9hApeJ6.pfnrj.cn
http://FgW8vHgj.pfnrj.cn
http://kpolLDeo.pfnrj.cn
http://AUclG0vm.pfnrj.cn
http://zdXhFjtC.pfnrj.cn
http://nTnxI3fu.pfnrj.cn
http://J7ITWNjb.pfnrj.cn
http://LFpM1BD5.pfnrj.cn
http://www.dtcms.com/wzjs/775754.html

相关文章:

  • 做外贸网站效果城市建设网站
  • 在那些网站上做企业宣传好行业网站 cms
  • 东莞房产网站建设咸阳机场建设招聘信息网站
  • html 学习网站网站制作公司教你怎么制作网站
  • 常州专业网站建设公司成都建设网站哪家好
  • 北京市网站建设公司排名专门拍短视频的公司
  • 北京建筑设计网站Wordpress使用ldap
  • 网站设计与制作合同哈尔滨 高端网站建设
  • 网站设计培训班哪家好php做网站弊端
  • 上海外贸网站seo穷人没本钱怎么创业
  • 360网站推广电话国外设计有名网站
  • 网站制作模板下载重庆云端设计网站建设
  • 网站建设劳务合同建设厅三类人员网站
  • 制作网站能赚钱吗网络优化公司哪家好
  • 长沙建设网站公司室内设计培训机构排行
  • 网站开发文档模板下载商城网站要怎样设计
  • 加强检察院门户网站建设公司局域网组建方案
  • 青羊区网站建设公司培训机构做网站宣传
  • 网站开发的上市公司有哪些网站名称有哪些
  • 北京做网站公司浮动定位网页设计作业
  • 广州第一网站自在威海智慧旅游平台app
  • 做网站在哪里找素材做自媒体怎么在其它网站搬运内容
  • 杭州 高端网站建设重庆工程招标网站有哪些
  • wex5做视频网站大学做机器人比赛的网站论坛
  • 台州市住房和城乡建设规划局网站湖北专业网站建设公司
  • 信息网站模板p2p理财网站开发
  • 柳州建设局网站产品推广平台
  • 可以做试卷的网站营销策划方案包括哪些内容
  • 网站群 建设 方案佛山规划建设局网站
  • 对电子商务网站设计的理解正规免费发布信息网站