为了账号安全,请及时绑定邮箱和手机立即绑定

从float到double,怎么数据变多了?

public class HelloWorld{

    public static void main(String[] args){

        float a=123.456f;

        double b=a;

        System.out.println(b);

    }

}

console:

123.45600128173828

正在回答

3 回答

float的精度比较低,double的精度相对高,从精度低的类型向精度高的类型转换的时候,会自动补全小数位(补全时都是随机的)。java中精度高的不能赋值给精度低类型的变量,反之可以。

4 回复 有任何疑惑可以回复我~
#1

180416 提问者

如果补全是随机的,那么为什么每次运行的结果都是这个数?
2019-01-09 回复 有任何疑惑可以回复我~
#2

180416 提问者

其实为什么它补全不全为0?
2019-01-09 回复 有任何疑惑可以回复我~
#3

到底是幼稚 回复 180416 提问者

你把float换一个数,转换成double类型自动补全的部分就不一样了,补全啥只有编译器知道吧。
2019-01-09 回复 有任何疑惑可以回复我~

double的精度比float的精度高一些,详细情况你可以去看看前面的数据类型。

0 回复 有任何疑惑可以回复我~

 double b=(double)a;

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165817    人
  • 解答问题       17588    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

从float到double,怎么数据变多了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信