Java 학습자로서 이러한 Java 기본 사항을 어떻게 이해하지 못할 수 있습니까? 이 기사에서는 Java 부동 소수점 유형, 단정밀도 부동 소수점 숫자 및 이중 정밀도 부동 소수점 숫자를 안내합니다.
부동 소수점 유형
우선, Java의 주요 부동 소수점 데이터 유형은 다음과 같습니다. 단정밀도
float
, 이중 정밀도double
float
、双精度double
至于浮点型就是跟
int
,string
类型差不多。都是数据类型。
浮点型浮点型别给我整些花里胡哨的定义,浮点型简单来说就是表示带有小数的数据,而恰恰小数点可以在相应的二进制的不同位置浮动,可能是这样就被定义成浮点型了。~不得不佩服这文化程度,定义个数据名称都这么有深度~
浮点型常量 Java的实常数有两种表示形式:
1、 十进制数形式:由数字和小数点组成,且必须有小数点,如
0.123
,123.0
2、科学计数法形式:如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数(当然也包括负整数)。
科学计数法中的E
了解浮点型常量 Java的实常数有两种表示形式之后,很有必要给各位科普科普下科学计数法中E
的面貌了~
E
是指数的意思,E
代表的英文是exponent
,E
表示10的多少次方的意思。
比如
7.823E5 = 782300
这里E5
表示10的5次方,再比如54.3E-2 = 0.543
这里E-2
表示10的-2次方
再补充一点(针对负次方理解)
一个数的负几次方就是这个数的几次方的倒数。
比如: 2的负1次方=2的1次方分之一=
1/2
比如: 3的负2次方=3的2次方分之一=
1/9
单精度浮点数(float)
单精度浮点数在机内占
4
个字节、有效数字8
位、表示范围:-3.40E+38 ~ +3.40E+38
在Java语言当中,所有的浮点型字面值 ~【V8提示】浮点型简单来说就是表示带有小数的数据~ 默认当做double
类型来处理,要想该字面值当做float
类型来处理,需要在字面值后面添加F/f
,或者强制装换为float
。具体如下代码:
public static void main(String[] args) { //3.10是浮点型,浮点型字面值默认当做double类型来处理,直接编译通过; double d=3.10; //3.10是浮点型,则必须加 F或者f,若没加,直接编译不通过,会报错“损失精度” float f=3.10; //编译出错会报错“损失精度” // 解决办法: // 第一种方式:强制类型转换 float f1=(float)5.1; // 第二种方式:没有类型转换; folat f2=5.1f; }
再来看看下面的测试,结果肯定十之八九会在意料之外,哈哈~
public static void main(String[] args) { float a = 12345678.90123456789f; double b=0.12345678901234567890; float c=0.12345678901234567890f; System.out.println(a); System.out.println(b); System.out.println(c); 打印结果 a = 1.2345679E7 b = 0.12345678901234568 c = 0.12345679 }
双精度浮点数(double)
双精度浮点数在机内占
8
个字节、有效数字16
位、表示范围:-1.79E+308 ~ +1.79E+308
double
的精度太低,不适合用于做财务软件,财务涉及到钱的问题,要求精度较高,所以在java中有一个基础的类库名为:java.math.BigDecimal
,但这个BigDecimal
类型是引用类型不是基础类型,切记!!!
在讲单精度浮点数(float
)的时候,差不多顺道把double
부동 소수점 유형
은 int
및 string
유형과 유사합니다. 모두 데이터 유형입니다.
0.123
, 123.0
🎜🎜와 같은 소수점이 있습니다. 2. 과학적 표기 형식: 123e3 또는 123E3과 같이 숫자가 있어야 합니다. e 또는 E 앞에, e 또는 E 뒤의 지수는 정수(물론 음의 정수 포함)여야 합니다.
🎜🎜🎜🎜E in science 표기법🎜🎜🎜🎜Java에는 부동 소수점 상수 표현이 두 가지가 있다는 점을 이해한 후, 과학적 표기법의 등장을 대중화할 필요가 있습니다. ~🎜🎜🎜E
는 지수를 의미하고, E
로 표현되는 영어는 지수
🎜, E
는 10🎜의 거듭제곱을 의미합니다. 🎜🎜🎜 🎜🎜예를 들어 7.823E5 = 782300
여기서 E5
는 10의 5승을 나타냅니다. 또 다른 예는 54.3E-2 = 0.543입니다. code> 여기서E-2
는 10의 -2승🎜🎜점을 하나 더 추가하는 것을 의미합니다(🎜부정의 거듭제곱에 대한 이해🎜)🎜🎜🎜숫자 음의 세제곱은 이 숫자 🎜의 세제곱의 역수입니다. 🎜🎜예: 2의 마이너스 1승 = 1/2/2 = 1/2
🎜🎜예: 3의 마이너스 2승 = 3의 2승 = 1/2 1/9🎜🎜🎜🎜단정밀도 부동 소수점 숫자(float)🎜🎜🎜🎜🎜단정밀도 부동 소수점 숫자는 4
바이트를 차지합니다. 유효한 숫자 8
, 표현 범위: -3.40E+38 ~ +3.40E+38
🎜🎜Java 언어에서는 모든 부동 소수점 문자가 Face입니다. value ~ [V8 팁] 부동 소수점 유형은 단순히 소수점으로 데이터를 나타냅니다. ~ 리터럴 값을 float
유형으로 처리하려면 기본적으로 double
유형으로 처리됩니다. 처리하려면 리터럴 값 뒤에 F/f
를 추가하거나 강제로 float
로 대체해야 합니다. 구체적인 코드는 다음과 같습니다. 🎜rrreee🎜 다음 테스트를 살펴보겠습니다. 결과는 확실히 예상치 못한 것입니다. 하하~🎜rrreee🎜🎜🎜이중 정밀도 부동 소수점 수(이중)🎜🎜🎜🎜🎜이중 정밀도 부동 소수점 숫자는 기계가 8
바이트를 차지하고 16
유효한 숫자를 가지며 범위를 나타냅니다: -1.79E+308 ~ +1.79E+308
🎜🎜double
은 정밀도가 너무 낮고 금융 소프트웨어에 적합하지 않습니다. 금융은 금전 문제와 관련되어 더 높은 정밀도를 요구하므로 Java에는 java라는 기본 클래스 라이브러리가 있습니다. .math.BigDecimal
이지만 이 BigDecimal
유형은 🎜참조 유형🎜기본 유형이 아니고🎜입니다. 기억하세요! ! ! 🎜🎜단정밀도 부동 소수점 수(float
)에 대해 이야기할 때 double
의 차이점에 대해 이야기할 뻔했어요 ㅎㅎ 그래서 결국에는 아주 고전적인 picture "Perfunctory" "Perfunctory" 하하하~ 야야야...때리지마...때리지마...뺨때리지마 QAQ~🎜🎜🎜이 글은 🎜Java 소개에서 따왔습니다. 🎜 칼럼, 배우신 것을 환영합니다! 🎜위 내용은 부동 소수점 유형이란 무엇입니까? 단정밀도 부동 소수점 숫자(float) 및 배정밀도 부동 소수점 숫자(double) 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!