Java float数据类型
floatv=64.0/48.0;为什么返回possiblelossofprecision?...
float v = 64.0 / 48.0;
为什么返回possible loss of precision? 展开
为什么返回possible loss of precision? 展开
8个回答
2023-03-15 · 百度认证:IT168官方账号,优质数码领域创作者
关注
展开全部
单精度浮点数。
FLOAT是C语言的基本数据类型中的一种,表示单精度浮点数。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
FLOAT是C语言的基本数据类型中的一种,表示单精度浮点数。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
2015-11-14 · 知道合伙人互联网行家
关注
展开全部
与表示整数的整型不同,浮点型代表的是实数,其实就是包含小数的部分。我们也知道现实世界中是由很多复杂的数据的,所以需要这种表示实数的数据类型的支持。
一、浮点型常量
Java的实常数有两种表示形式:
1.十进制数形式,由数字和小数点组成,且必须有小数点,如0.123, .123, 123. ,123.0 。
2.科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。
实常数在机器中占64位,具有double型的值。对于float型的值,则要在数字后加f或F,如12.3F,它在机器中占32位,且表示精度较低。
二、浮点型变量
浮点型变量的类型有float和double两种。
数据类型所占位数的范围:
float 32位 3.4e-038~3.4e+038 ;
double 64位 1.7e-308~1.7e+308 ;
双精度类型double比单精度类型float具有更高的精度,和更大的表示范围,常常用于科学计算等高精度场合。
三、浮点型变量定义举例
float f; //指定变量f为float型
double d; //指定变量d为double型
与C、C++不同,Java中没有无符号型整数,而且明确规定了整型和浮点型数据所占的内存字节数,这样就保证了安全性、鲁棒性和平台无关性。
一、浮点型常量
Java的实常数有两种表示形式:
1.十进制数形式,由数字和小数点组成,且必须有小数点,如0.123, .123, 123. ,123.0 。
2.科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。
实常数在机器中占64位,具有double型的值。对于float型的值,则要在数字后加f或F,如12.3F,它在机器中占32位,且表示精度较低。
二、浮点型变量
浮点型变量的类型有float和double两种。
数据类型所占位数的范围:
float 32位 3.4e-038~3.4e+038 ;
double 64位 1.7e-308~1.7e+308 ;
双精度类型double比单精度类型float具有更高的精度,和更大的表示范围,常常用于科学计算等高精度场合。
三、浮点型变量定义举例
float f; //指定变量f为float型
double d; //指定变量d为double型
与C、C++不同,Java中没有无符号型整数,而且明确规定了整型和浮点型数据所占的内存字节数,这样就保证了安全性、鲁棒性和平台无关性。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
possible loss of precision可能丢失精度,因为double类型的数的精确度比float类型的数大 。64.0 / 48.0返回类型为double型,不能赋给精度低的float类型的v.
改为如下:float v = (float)(64.0 / 48.0);或double v = 64.0 / 48.0;
改为如下:float v = (float)(64.0 / 48.0);或double v = 64.0 / 48.0;
追问
不好意思再问一下。。为什么64.0和48.0是double型?他们不是都在FLOAT的取值范围之内吗
追答
实型常量(就是小数)默认是double类型,对于float类型的常亮需在其值后加上f或F
64.0和48.0这两个只要有小数点,就算后面没有0跟着,也算是小数,如64. .48
64.0和48.0这俩小数虽然在float范围内,但是后面没跟上f或F,如64.0f 48.0F,小数只有跟上f或F才是float类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能丢失精度的提示,因为再JAVA中如果不标志数据类型,那么浮点型默认是double类型,不管它是不是在float范围里面,你想要声明float要在数字后面加上f,比如:float v=64.0f这样才行,顺便说一下,整数类型不写默认是int
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在java中,只要是有小数点的,默认为double,你可以这样
float v=64.0f// 这样就是float的了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询