在JAVA中把double类型转换成long类型,丢失数据位是什么,为什么?

例double x=12.10;用long y=(long)x;强制转换成long 后y里面的数据为12,请用数学理论解释,我不是要结果哦

double是浮点型,long是整数型,以上语句转换时小数部分没有了,这就是丢失。javadouble转long型是取整运算,用Double封装下基本类型double,再调用longValue方法。Double(doublevalue)

longlongValue(),将此Double值作为long类型返回(通过强制转换为long类型),详细步骤:

1、首先在visualstudio中用c#语言进行类型转换,新建项目命名"longdouble",项目结构图如下。

2、在项目中,新建类文件program.cs,运行项目如下图所示。

3、用java语言进行类型转换,在软件开发平台建立java项目,命名为”longdouble",项目结构图如下。

4、在此java项目中,新建类longtudouble.java,在main函数中用强制类型转换将long型转为double型,具体代码如下。

5、在此java项目中,新建类doubletolong.java类文件,用强制类型转换将double转为long,代码如下。

6、用c语言进行类型转换,在项目中新建longdoublec,项目结构图如下。

7、运行此项目,项目代码和运行效果如下图所示。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-26

在JAVA中把double类型转换成long类型,丢失数据位是小数位,也就是取整。

Java 中 long 是一个整数基本类型, 长度为64bits, 即8字节.而double存在小数;如果带小数点的double转long型必定会造成数据变化,也就是取整。

第2个回答  2008-04-26
long 是长整型,在怎么长本身也是整型,12.10的整形部分是12,当然结果是12,只不过long类型要比int类型值的范围要更广。本回答被提问者采纳
第3个回答  2008-04-26
double是浮点型,long是整数型,以上语句转换时小数部分自然没有了,这就是所谓丢失精度,而且,double转换成long时需用明确的转换语句,如你的例子,但long转换成double时则不需明确标识出转换类型,如long x=12;double y=x
第4个回答  2008-04-26
强制转型会丢失精度就这样 没别的
相似回答