在Java中,有三种要领能够将float转换为long或int,但我们只关注long数据范例部份。
将float数据范例转换为long值的第一种要领是将auto-box float原语转换为float对象并挪用longValue()要领。
这是一种更结构化的要领,因为其他要领只是简朴地将float转换为long或int以去掉小数点。
也能够根据以下提醒编写Java顺序,经由过程将long要领替换为对应的int要领,将float转换为int。
别的,还能够运用Math.round()然后将其转换回long数据范例。
第二种要领是最简朴的,假如只是去掉小数点后的数字,但假如须要四舍五入,那末第三种要领是最好的将float数据范例转换为long。
在本文中,将进修在Java中实行float到long转换的三种要领。
在Java中将float转换为long的3种要领
计划一- Casting
Java支撑范例转换,它是将一种数据范例转换为另一种数据范例的,但只能将较高的值转换为较低的值。因为float的局限比long长,因而能够运用范例转换将其转换为long,以下所示:
float number = 444.33f; long aValue = (long) number; // 444
它不会做任何事情,只是抛弃小数点后的值,因而将在fromFloat变量中获得3的值 。
假如想把float转换成 int,那末你应当把float转换成整型数,而不是转换成long型数,这是最简朴的转换要领。
解决计划2 - Float.longValue
将float转换为long的另一种要领是首先将float值自动装入Float包装对象,然后挪用Float.longValue() 要领。此要领在内部将浮点值转换为long,如上图和下面的代码所示:
public long longValue(){ return(long)value; }
以下是怎样运用此要领举行转换:
Float PIE = 3.14f; long fromFloat = PIE.longValue();
当你具有Float对象而不是float原始值时,此要领更适宜。
解决计划3 - Math.round和Casting
偶然转换并不像抛弃小数点后的内容那样简朴。能够须要先举行舍入,然后再举行转换。假如是这类状况,那末能够运用Math.round()要领先举行舍入,再举行范例转换,将double转换为long,Math.round()要领返回一个double值。下面是完成这类转换的示例代码:
// 运用Math.round()并强迫转换为long float points = 333.322f; long rounded = Math.round(points); System.out.printf("float : %f, long : %d %n", points, rounded); points = 333.922f; rounded = Math.round(points); System.out.printf("float : %f, long : %d %n", points, rounded); Output : float : 333.321991, long : 333 float : 333.921997, long : 334
能够看到舍入的结果,在第一个示例中,float是向下舍入的,这就是为何转换的long值是333,而在第二个示例中它被舍入,这就是为何long值为334.
Java顺序将float转换为long数据范例
下面代码所示,它连系了三种要领将float转换为long。能够看到它们是怎样事情的,并进修怎样实行另一个相似的转换手艺,如float to int,short或byte或double to long,int,short和byte。
/** * 用于在Java中将float转换为long * * @author Javarevisited */ public class FloatToLongConverter{ public static void main(String[] args) { // Autobox浮动到Float然后挪用Float.longValue(); Float PIE = 3.14f; long fromFloat = PIE.longValue(); System.out.printf("float value %f, long value %d %n", PIE, fromFloat); // 简朴的范例转换来消弭小数 float number = 444.33f; long aValue = (long) number; System.out.printf("float value %f, after casting into long %d %n", number, aValue); // 运用Math.round()并将其转换回long float points = 333.322f; long rounded = Math.round(points); System.out.printf("float : %f, long : %d %n", points, rounded); } } Output : float value 3.140000, long value 3 float value 444.329987, after casting into long 444 float : 333.321991, long : 333
这就是怎样在Java中将float转换为long数据范例。假如你只是删除十进制值,则范例转换是最简朴的要领。这不是在Java中舍入数字的唯一要领,但它适用于大多用处。
假如你想更快、更体系的进修,快来到场群聊,内里有阿里、百度口试试题、Java工程化、高机能及分布式、微效劳、机能调优Spring、MyBatis,Netty源码剖析等知识点的解说【Java架构师资源共享群】(群号142019080),直接点击链接加群。https://jq.qq.com/?_wv=1027&k=5lXBNZ7
以上就是Java中怎样将float转换为long或int?(附代码)的细致内容,更多请关注ki4网别的相干文章!