ホームページ  >  記事  >  Java  >  Javaでfloatをlongまたはintに変換するにはどうすればよいですか? (コード付き)

Javaでfloatをlongまたはintに変換するにはどうすればよいですか? (コード付き)

不言
不言転載
2019-03-07 16:00:3210853ブラウズ

この記事の内容は、Java で float を long または int に変換する方法についてです。 (コードを添付します) ある程度参考になるので、困っている友達は参考にしていただければ幸いです。

Java では、float を long または int に変換する方法が 3 つありますが、ここでは、long データ型の部分にのみ焦点を当てます。

float データ型を long 値に変換する最初の方法は、オートボックス float プリミティブを float オブジェクトに変換し、longValue() メソッドを呼び出すことです。

他のメソッドは単に float を long または int に変換して小数点を削除するだけであるため、これはより構造化されたアプローチです。

次のヒントに従って Java プログラムを作成し、long メソッドを対応する int メソッドに置き換えて float を int に変換することもできます。

あるいは、Math.round() を使用してから、long データ型に変換し直すこともできます。

小数点以下の数字を削除するだけの場合は 2 番目の方法が最も簡単ですが、四捨五入する必要がある場合は、float データ型を long に変換する 3 番目の方法が最適です。

この記事では、Java で float から Long への変換を実行する 3 つの方法を学習します。

Java で float を long に変換する 3 つの方法

オプション 1-キャスト

Java は、A データ型を変換する型変換をサポートしています。は別のデータ型に変換されますが、より高い値のみをより低い値に変換できます。 float は long よりも範囲が長いため、次のように型キャストを使用して long に変換できます。

float number = 444.33f; 
long aValue = (long) number; // 444

これは小数点以下の値を破棄するだけなので、次のようになります。 fromFloat 変数の値 3 を取得します。

float を int に変換したい場合は、long ではなく float を integer に変換する必要があります。これが最も単純な変換方法です。

解決策 2 - Float.longValue

float を long に変換するもう 1 つの方法は、最初に 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 になります。 float を Long に変換します。それらがどのように機能するかを確認し、float から int、short、byte へ、または double から 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 データ型に変換する方法です。 10 進数値を削除するだけの場合は、型変換が最も簡単な方法です。これは Java で数値を丸める唯一の方法ではありませんが、ほとんどの目的で機能します。 より早く、より体系的に学びたい場合は、グループ チャットに参加してください。このグループ チャットには、Alibaba、Baidu の面接での質問、Java エンジニアリング、ハイパフォーマンスとディストリビューション、マイクロサービス、パフォーマンス チューニング Spring、MyBatis、Netty の説明などが含まれます。ソース コード分析およびその他のナレッジ ポイント [Java Architect Resource Sharing Group] (グループ番号 142019080) のリンクを直接クリックしてグループに参加します。 https://jq.qq.com/?_wv=1027&k=5lXBNZ7

以上がJavaでfloatをlongまたはintに変換するにはどうすればよいですか? (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。