网站首页 > java教程 正文
我们今天要讨论的问题是,在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。
猜你喜欢
- 2024-09-16 mysq时间进位问题(mysql 当前时间函数)
- 2024-09-16 Java程序员们请你不要用战术上的勤奋掩盖你自己站略上的懒惰
- 2024-09-16 Java中存储金额用什么数据类型?(java用什么数据类型表示金额)
- 2024-09-16 java 坐标类_java实现坐标(java中坐标)
- 2024-09-16 MySQL常用函数,程序员真得看看(mysql函数用法)
- 2024-09-16 Java中Double保留后小数位的几种方法
- 2024-09-16 Java面试官问我10道题,我答错了一半,你能答对多少?
- 2024-09-16 java.util.Math类--数学相关的工具类
- 2024-09-16 怎么让四舍五入都不亏?(怎么四舍五入到个位)
- 2024-09-16 一张图彻底搞懂Java取整函数ceil、floor、round的区别!建议收藏
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)