您的位置 首页 java

Java编程中是否可以将一个double的值赋给一个long变量?

我们今天要讨论的问题是,在 Java 编程语言中,是否可以将一个double的值赋给一个long变量?

简单来说答案是可以的,但是需要转换。虽然double和long都是64位,但是由于存储的方式不一样,double的范围要大于long的范围,所以double的值不能直接存在long变量中。

要想把double的值转换为long,方式有两种:

一种就是简单地将double值通过转换来赋给long变量,如果是基本数据类型的double,可以直接使用强制转换,如果是Double(包装类),可以调用 longValue() 方法。这种直接转换的方式,会把小数部分全部省略掉,而把整数部分赋值给long变量。比如15.9转换为long后是15,129.20转换之后是129。

 	    double a = 15.9;
	    long b = (long) a; 		// b = 15
	    
	    Double c = 129.20;
	    long d = c.longValue();	// d = 129  

第二种方法是使用Math.round()方法将double四舍五入为最接近的整数。比如15.9转换为long后是16,129.20转换之后是129。

 	    double a = 15.9;
	    long b = Math.round(a); 		// b = 16
	    
	    Double c = 129.20;
	    long d = Math.round(c);			// d = 129  

选择哪种,实际上取决于要对浮点值进行的处理。

最后这里要提醒大家,java.lang.Match.round() 的 算法 为将被计算的数字加上 0.5 后向下取整,所以 Math.round(10.5) 的结果为 11,而 Math.round(-10.5) 的结果为 -10。

文章来源:智云一二三科技

文章标题:Java编程中是否可以将一个double的值赋给一个long变量?

文章地址:https://www.zhihuclub.com/183732.shtml

关于作者: 智云科技

热门文章

网站地图