社区
Java SE
帖子详情
问个菜鸟问题,大虾请进
QQ150900
2009-07-06 12:03:31
本人是初学者,请大虾请看下面的程序
class StringTest
{
public static void main(String[] args)
{
int i=3;
float ff=15.123f;
System.out.println(i+ff);
//这句打印出来的结果是18.123001
如果将ff设为1.1f,print打印出来的是4.1
}
}
为什么结果会是18.123001 ?
还请大虾指教一下?
...全文
25
13
打赏
收藏
问个菜鸟问题,大虾请进
本人是初学者,请大虾请看下面的程序 class StringTest { public static void main(String[] args) { int i=3; float ff=15.123f; System.out.println(i+ff); //这句打印出来的结果是18.123001 如果将ff设为1.1f,print打印出来的是4.1 } } 为什么结果会是18.123001 ? 还请大虾指教一下?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pathuang68
2009-07-07
打赏
举报
回复
就是精度问题,这种情况很正常的
bigbug9002
2009-07-07
打赏
举报
回复
2楼说的对啊,凡是乘2的若干次不能成为整数的浮点数,机内表示都不可能是精确表示。
blueallstar
2009-07-07
打赏
举报
回复
所以以后不要拿较大的数和较小的数直接相加相减,那样会造成“丢失”小的数
「已注销」
2009-07-07
打赏
举报
回复
精度啊,
大哥,现在内存都NG了,别再省那点内存了,直接DOUBLE吧
361719298
2009-07-06
打赏
举报
回复
学习了。。。
晨星
2009-07-06
打赏
举报
回复
浮点数有精度问题的。
如果楼主好好学过微机原理,就会一点也不觉得奇怪了。
没好好学过也不要紧,知道浮点数本来就不是准确的就OK了。如果你不信,你可以手工试着把15.123化成二进制,你就知道我说的对不对了。一个float连底数加指数才32个比特,却能表示10的38次方那么大的数。这是为什么?就是牺牲了精度换来了表示范围。
另外,当把一个数打印成字符串时,可以控制它的显示位数的,方法是使用相应的Formatter类。
还需要知道显示出来的字符串只是一个近似的显示结果,它并不准确对应内存里的那个float,内存里的float,如果不转化成近似的十进制字符串来显示,人眼看起来是很费劲的。
361719298
2009-07-06
打赏
举报
回复
这你应该去问 JVM 了
这种问题在实际应用中不是特别重要的
lovecj6185
2009-07-06
打赏
举报
回复
学习了
原来如此
HowToStrong
2009-07-06
打赏
举报
回复
楼主。这个问题在计算的时候JVM是把INT类型转化为FLOAT类型来计算的。
当然在转化的过程中会产生精度的丢失。这个问题呢。其实不必弄的很清楚。
JAVA语言不是C++或者C语言。这里精度的不准确一般不会影响你的应用。。
Miracle1216
2009-07-06
打赏
举报
回复
奇怪的事很多,反正就是Float的精度问题了。
晨星
2009-07-06
打赏
举报
回复
我猜是JAVA库在转换float到string时,如果发现末尾跟着的全是无效的0,就自动去掉了。
catici
2009-07-06
打赏
举报
回复
对呢?float型的数输出不是小数点后面六位吗?
怎么1.1f的时候就输出小数点后面的一位呢?
有点奇怪……
ffen0510
2009-07-06
打赏
举报
回复
学了就走~~~顺便拿分
记一个
菜鸟
在Linux上部署Tomcat的随笔
以前都只是在园子里找各种资料、文档、各种抱大腿,是第一次进园子里来添砖加瓦,实话说,都不知道整些啥东西上来,把自己在Linux上搭建Tomcat的过程记录下来,人笨,请各位
大虾
们勿喷。 虽然做开发已经有段时间...
菜鸟
求助,
大虾
们
请进
!
本人服务器安装iis5.0与acces数据库后,asp网页可以顺利使用访问正常。不过当安装sql-server2000后发现无法访问原先的asp网站,不过静态网页可以浏览。...限于小弟水平有限,故在此希望各位
大虾
不吝赐教,谢谢了!
程序员的十层楼(
菜鸟
,
大虾
,牛人......)
要解决这个
问题
,必须先知道程序员有多少种技术层级,每个层级需要什么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大。 当然,对于如何划分程序员的技术层级,...
我们都曾是
菜鸟
简述 我们都曾是职场
菜鸟
,成长路上,历经磨难。但
菜鸟
总有翻身之日,而
菜鸟
的成长史,就是一段从“弱爆了”到“屌爆了”的过程...我并不认为
菜鸟
是个贬义词,它往往是猿们调侃、自嘲的话题,幽默、谦逊、而又真实...
程序员的十层楼(1~3层)——
菜鸟
、
大虾
看过来!
自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后...要解决这个
问题
,必须先知道程序员有多少种技术层
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章