在java中,double型的数据与float型的数据相加,结果怎么会这样呢??这是什么意思?

fengfen_yu 2012-03-02 11:05:17
public class helloworld {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double a=2.8;
float b=8.4f;
boolean c=false;
System.out.println(a);
a=b;
System.out.println(a+b);(就是这里)

System.out.println(c);
System.out.println('好');

}



结果为这个
2.8
16.799999237060547为什么是这个结果??就算它的结果为double型,那也该是11.2啊??
false





}
...全文
513 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqhw123 2012-03-05
  • 打赏
  • 举报
回复
a = b;
把b赋给了a,数值的范围变大了,导致了数据的不准确,即这个时候a的值不是8.4
所以出现了这样的结果。
菖蒲老先生 2012-03-05
  • 打赏
  • 举报
回复
浮点数的运算本来就不是很精确的,它只能返回无限接近结果的值。
详见 java解惑

一般浮点数的运算用BigDicemal,可以度娘一下。。
qq9209999 2012-03-05
  • 打赏
  • 举报
回复
这个问题还需要想?

肯定是那个结果

a = b ;
这个时候a就是8.4f了 。

再给你延伸一下

比如说:
User us = new User();

us。setName(“123”);

User us1 = new User();
us。setName(“345”);
System.out.println(us.getName());
?????
zhangzhixxm 2012-03-04
  • 打赏
  • 举报
回复
结果应该是float类型
Long88888888M 2012-03-02
  • 打赏
  • 举报
回复
你把b的值赋给了a,a就等于8.4。在输出(a+b)就是这样的结果呢
代号裤子 2012-03-02
  • 打赏
  • 举报
回复
a=b了
tauke_wang 2012-03-02
  • 打赏
  • 举报
回复
你在中间是将b的值赋予a了,所以结果就成这样了
本文基于国A股上市企业数据,分析了逻辑和学习AI技术应用对企业创新的影响。通过机器学习生成AI词典并分析年报文本,测量AI应用水平。研究发现,AI应用通过增加知识多样性、打破组织惯例和提高资源配置效率促进企业创新,且企业的吸收能力增强了这一促进作用 参照李玉花(2024)的做法,团队对来自国工业经济《人工智能技术应用如何影响企业创新》一文的基准回归部分进行复刻 团队将原文数据更新至2023年,并对基准回归进行复刻。数据年份为2007-2023年,包括原始数据、处理dofile,基准回归代码 一、数据介绍 数据名称:人工智能技术应用如何影响企业创新 数据范围:A股上市公司 数据年份:2007-2023年 有效样本:33615条 数据说明:参考《管理世界》姚加权(2024)的做法,测算人工智能水平 内含原始数据、dofile和基准回归 二、数据指标 股票代码 股票简称 年份 省份 城市 区县 省份代码 城市代码 区县代码 行业代码 行业名称 企业上市年龄_年 是否ST或金融类 总资产_万元 营业收入增长率_% 资产负债率_% 总资产收益率_% 研发投入占营业收入比例_% 人工智能词频和 人工智能词频和加1取对数 企业专利申请总量 企业发明专利申请量 企业专利授权总量 企业发明专利授权量 三、参考文献 李玉花,林雨昕,李丹丹.人工智能技术应用如何影响企业创新[J].国工业经济,2024,(10):155-173.

58,448

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧