登录
首页 >  Golang >  Go问答

为什么 fmt.Println(float64(1/2)) 显示 0?

来源:Golang技术栈

时间:2023-04-13 20:15:48 160浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《为什么 fmt.Println(float64(1/2)) 显示 0?》,这篇文章主要会讲到golang等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

package main

import (
    "fmt"
)

func main() {
    fmt.Println(float64(1/2))
}

为什么打印:0

游乐场链接: https: //play.golang.org/p/KGgao6n8lTA

是因为fmt.Println精度低吗?

正确答案

这里的运算顺序是:(1/2 = 0整数除法截断小数位)后跟float64(0) = 0,然后fmt.Println(0)

简而言之:整数除法被截断为 0。其他一切正常。

正如@Amadan 评论的那样,您可以通过转换其中一个整数来强制进行浮点除法,即float64(1) / 2 = 0.5.

以上就是《为什么 fmt.Println(float64(1/2)) 显示 0?》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>