温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java中将float转换为long或int的方法有哪些

发布时间:2020-08-20 15:03:35 来源:亿速云 阅读:365 作者:小新 栏目:编程语言

这篇文章主要介绍了Java中将float转换为long或int的方法有哪些,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

在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中将float转换为long或int的方法有哪些内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI