java中用float時,數(shù)字后面加f,這樣是為什么你知道嗎
Java float 與 double 的區(qū)別
1、float是單精度浮點數(shù)
內(nèi)存分配4個字節(jié),占32位,有效小數(shù)位6-7位
double是雙精度浮點數(shù),內(nèi)存分配8個字節(jié),占64位,有效小數(shù)位15位
2、java中默認(rèn)聲明的小數(shù)是double類型的
如double d=4.0
如果聲明: float x = 4.0則會報錯,需要如下寫法:float x = 4.0f或者float x = (float)4.0
其中4.0f后面的f只是為了區(qū)別double,并不代表任何數(shù)字上的意義
3、對編程人員來而
double 和 float 的區(qū)別是double精度高,但double消耗內(nèi)存是float的兩倍,且double的運算速度較float稍慢。
Java float、double、long類型變量賦值添加f、d、L尾綴問題
1、添加尾綴說明
我們知道Java在變量賦值的時候,其中float、double、long數(shù)據(jù)類型變量,需要在賦值直接量后面分別添加f或F、d或D、l或L尾綴來說明。
其中,long類型最好以大寫L來添加尾綴,因為小寫l容易和數(shù)字1混淆。
例如:
long lNum = 1234L; float fNum = 1.23f; double dNum = 1.23d;
這是Java語法規(guī)定,不添加尾綴很容易引起編譯器報錯,并且程序可讀性也會變差。
2、不添加尾綴也不會報錯的情況
Java語言中,整數(shù)直接量(例如:1、2、10等),JVM虛擬機是默認(rèn)為int類型數(shù)據(jù)的。所以,當(dāng)整數(shù)直接量賦給long、float或者double,而不添加尾綴,虛擬機也會直接將int類型數(shù)據(jù)自動轉(zhuǎn)換為對應(yīng)類型然后賦值。因為數(shù)據(jù)長度短的轉(zhuǎn)換為長的并不會造成數(shù)據(jù)丟失,所以默認(rèn)可以自動轉(zhuǎn)換?! ?/p>
例如:
long lNum = 5; //不報錯,因為int自動轉(zhuǎn)換為long類型,不會報錯 float fNum = 7; //不報錯,因為int自動轉(zhuǎn)換為float類型,不會報錯 double dNum = 10; //同上
但是,當(dāng)浮點直接量(例如:1.2等),JVM虛擬機默認(rèn)為double類型,如果直接賦值給float就會引起編譯器報錯。
float fNum = 1.2; //報錯,因為1.2虛擬機是默認(rèn)為double類型,不能直接賦值給float類型變量 float fNew = 1.3f;//正確,因為尾綴添加了f,即告訴了虛擬機1.3屬于float類型變量
3、總結(jié)
所以,當(dāng)Java中遇到這三種類型變量需要賦直接量時候,最好都添加上相應(yīng)的尾綴。這樣不僅會防止編譯器報錯,也會增加程序的可讀性。
但是下面這種情況就算添加尾綴也是錯的,因為尾綴僅是為了告訴虛擬機該直接數(shù)屬于什么數(shù)據(jù)類型,而不能實現(xiàn)數(shù)據(jù)類型強制轉(zhuǎn)換。
long lNum = 1.2L; //錯誤,double類型數(shù)據(jù)不能直接賦值給long類型 long lNew = (long)1.2; //正確,double類型數(shù)據(jù)強制轉(zhuǎn)換為long類型
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java通過復(fù)選框控件數(shù)組實現(xiàn)添加多個復(fù)選框控件示例分享
編寫程序,通過復(fù)選框控件數(shù)組事先選擇用戶愛好信息的復(fù)選框,在該程序中,要求界面中的復(fù)選框數(shù)量可以根據(jù)指定復(fù)選框名稱的字符串?dāng)?shù)組的長度來自動調(diào)節(jié)2014-02-02SpringBoot關(guān)閉過程中銷毀DisposableBean解讀
這篇文章主要介紹了SpringBoot關(guān)閉過程中銷毀DisposableBean解讀,一個bean的生命周期,指的是 bean 從創(chuàng)建,初始化,一系列使用,銷毀的過程,今天來講講 bean 的初始化和銷毀的方法,需要的朋友可以參考下2023-12-12Java 轉(zhuǎn)型(向上或向下轉(zhuǎn)型)詳解及簡單實例
這篇文章主要介紹了Java 轉(zhuǎn)型(向上或向下轉(zhuǎn)型)詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下2017-02-02MyBatis-Plus聯(lián)表查詢以及分頁代碼實例
在開發(fā)中遇到了一個問題,需要進行聯(lián)表查詢并進行分頁,因為不想自己來寫分頁,所以還是依靠MybatisPlus來實現(xiàn)想要的功能,下面這篇文章主要給大家介紹了關(guān)于MyBatis-Plus聯(lián)表查詢以及分頁的相關(guān)資料,需要的朋友可以參考下2023-06-06spring boot整合log4j2及MQ消費處理系統(tǒng)日志示例
這篇文章主要為大家介紹了spring boot整合log4j2及MQ消費處理系統(tǒng)日志的示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03