问题内容
我想显示切片中正数、负数和零元素的比率。我需要 float32 格式的比率。这是我的代码:
arr := []int32{-2, -1, 0, 1, 2}
var negativenumber, positivenumber, zeronumber, totalnumber int32
var negativeratio, positiveratio, zeroratio float32
for i := 0; i < len(arr); i++ {
totalnumber += 1
}
for i := 0; i < len(arr); i++ {
if arr[i] < 0 {
negativenumber += 1
} else if arr[i] == 0 {
zeronumber += 1
} else if arr[i] > 0 {
positivenumber += 1
}
}
negativeratio = float32(negativenumber / totalnumber)
zeroratio = float32(zeronumber / totalnumber)
positiveratio = float32(positivenumber / totalnumber)
fmt.printf("total number: %d\n", totalnumber)
fmt.printf("positive number: %d\n", positivenumber)
fmt.printf("negative number: %d\n", negativenumber)
fmt.printf("zero number: %d\n", zeronumber)
fmt.printf("positive ratio: %f\n", positiveratio)
fmt.printf("negative ratio: %f\n", negativeratio)
fmt.printf("zero ratio: %f\n", zeroratio)
但是,当我打印变量时,我得到的正数、负数和零数是正确的,但比率是错误的。这是输出:
total number: 5
positive number: 2
negative number: 2
zero number: 1
positive ratio: 0.000000
negative ratio: 0.000000
zero ratio: 0.000000
我做错了什么?
正确答案
您使用的是整数除法而不是浮点除法,浮点除法会丢弃余数并仅返回除法结果的整数部分。
由于 negativeNumber
和 totalNumber
都是 int32
类型,因此 NegativeNumber /totalNumber
执行整数除法,即执行除法并返回结果的下限(即 0)。然后,当您使用 float32(负数/总数)
将其转换为 float32
时,您会得到 0.0
,这是预期的。
为了使用浮点除法,操作数之一必须是浮点类型。为此,您可以使用:float32(负数)/totalNumber
以上就是Go - 切片中正数、负数和零数元素的比率的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- Java 多线程批量处理的方法究竟有哪些?(java多线程批量处理的方法是什么)
- Java 中 BigDecimal 的详细介绍与实用使用方法(java中BigDecimal的介绍及使用)
- 如何通过 JavaScript 事件循环来优化代码?(JavaScript 事件循环如何优化代码)
- 如何用 Java 解析 XML 并获取标签属性值?(java怎么解析xml获取标签属性值)
- Java 中实现 MapReduce 的具体方法有哪些?(java实现mapreduce的方法是什么)
- 如何让 Java 的 settimeout 与线程池协同工作?(Java settimeout怎样与线程池配合)
- Java 中对象数组的定义及使用方式有哪些?(Java对象数组定义与用法有哪些)
- Java ClassLoader 的使用方法究竟是什么?(java classloader的使用方法是什么)
- Java 中 Bimap 的适用场景具体有哪些?(Bimap在Java中的适用场景有哪些)
- Java 和 Golang 在性能方面有哪些差异?(Java与Golang的性能差异)
猜你喜欢
AI推送时光机Go - 切片中正数、负数和零数元素的比率
后端开发2024-02-06
关于Java中数组切片的几种方法(获取数组元素)
后端开发2023-05-18
Go语言中的数组和切片是什么
后端开发2023-06-20
go语言中切片和数组指的是什么
后端开发2023-07-04
Go语言中的数组、切片和映射解析
后端开发2023-09-08
Go 语言中的数组和切片有什么区别?
后端开发2023-10-07
简单聊一聊Go语言中的数组和切片
后端开发2024-04-02
python中的Numpy二维数组遍历与二维数组切片后遍历效率比较
后端开发2024-04-02
深入剖析Go语言中数组和切片的区别
后端开发2023-05-19
详解Go语言中数组,切片和映射的使用
后端开发2024-04-02
咦!没有更多了?去看看其它编程学习网 内容吧