java-100*5.11 = 511.00000000000006

问题描述

100*5.11 = 511.00000000000006

System.out.println(100*5.11);//511.00000000000006

100*5.11 应该 = 511

但是java中进行运算得到的结果是 511.00000000000006

请问这是问什么?
如果要得到正确的结果有解决办法吗?

谢谢~~

解决方案

改成System.out.println((int) (100 * 5.11));就可以了

解决方案二:

这是由于发生了数据类型的转换造成的结果。
100是整型,5.11是浮点型,两者相乘发生向上转换成浮点型。
你看下基本数据类型的知识就明白了。
System.out.println((int) (100 * 5.11));//强制类型转换为整型即可。

解决方案三:

都转化为float类型即可
System.out.println((float)5.11*(float)100);

解决方案四:

都转化为float类型即可
System.out.println((float)5.11*(float)100);

或者都转化为BigDecimal,一定要转化为字符串
BigDecimal a1=new BigDecimal("100");
BigDecimal b1=new BigDecimal("5.11");
System.out.println("BigDecimal:"+a1.multiply(b1) );

时间: 2024-11-03 22:11:32

java-100*5.11 = 511.00000000000006的相关文章

JAVA提高教程(11)-认识Map

Map可以为某些数据提供快速查找功能,通过关键字(key)可以快速的得到对应的 Value,而不用像List那样需要大范围的遍历或特别的算法. 1. 源代码 1.import java.util.ArrayList; 2.import java.util.HashMap; 3.import java.util.HashSet; 4.import java.util.Iterator; 5.import java.util.List; 6.import java.util.Map; 7.impor

JAVA基础培训(11),方法的Override

Override, 主要是因为父类的功能无法满足需求,我们又不能直接修改父类的情况下 ,我们通过子类重写,来实现新的功能. package Lession11; import java.util.ArrayList; import java.util.List; /** * 老紫竹JAVA基础培训(11),方法的Override.<br> * * * @author 老紫竹 JAVA世纪网(java2000.net) * */ public class Lession11 { public s

Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例

概要 前一章,我们学习了HashMap.这一章,我们对Hashtable进行学习.我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable.第1部分 Hashtable介绍第2部分 Hashtable数据结构第3部分 Hashtable源码解析(基于JDK1.6.0_45)第4部分 Hashtable遍历方式第5部分 Hashtable示例 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3310887.h

Java初学者必知:Java语言的11大特点

Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异.多线程的静态语言.那么java语言的特点是什么呢?  1.Java语言是简单的. Java 语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java.另一方面,Java丢弃了C++中很少使用的.很难理解的.令人迷惑 的那些特性,如操作符重载.多继承.自动的强制类型转换.特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧. 2.Java语言是一

国美在线Q3业绩同比增100% 双11揭幕战欲拔头筹

昨天晚间,国美集团发布第三季度业绩预告.预告显示,在电子商务方面,运营能力持续提升,低成本高效率的供应链整合优势愈发明显,第三季度电子商务总交易额将同比增长超过100%,国美在线进入加速发展期. 报告称,今年前三季度,国美集团整体业绩喜人,综合毛利率预计将超过18%,基于http://www.aliyun.com/zixun/aggregation/38963.html">销售收入增长.综合毛利率稳健增长.费用率下降等原因,国美今年1-9月的净利润将比去年同期大幅增长超过70%,净利润率预

java集合框架11——TreeMap和源码分析(二)

版权声明:尊重博主原创文章,转载请注明出处哦~http://blog.csdn.net/eson_15/article/details/51239885 目录(?)[+] 我们继续分析TreeMap的源码 1.TreeMap源码分析(续) 1. 存取方法         TreeMap中的存取方法本质上就是对红黑树的插入和删除操作,从源码里体现的更为明显,其实就是对红黑树的插入和删除(可以参考:红黑树),下面简单看下源码: [java] view plain copy   /**********

java io系列11之 FilterOutputStream

FilterOutputStream 介绍 FilterOutputStream 的作用是用来"封装其它的输出流,并为它们提供额外的功能".它主要包括BufferedOutputStream, DataOutputStream和PrintStream. (01) BufferedOutputStream的作用就是为"输出流提供缓冲功能". (02) DataOutputStream 是用来装饰其它输出流,将DataOutputStream和DataInputStre

请各位帮忙看个SSH问题

问题描述 2011-3-1616:11:33org.apache.catalina.core.StandardContextlistenerStart严重:Exceptionsendingcontextinitializedeventtolistenerinstanceofclassorg.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException

100个高质量Java开发者博客

原文地址: http://news.cnblogs.com/n/194589/ 英文原文: 100 High-Quality Java Developers' Blogs 本文的主要目的是收集全球范围内 100 个高质量 Java 开发者博客.其中会有一些博客并不是由纯粹的 Java 开发者撰写的,但是 Java 开发者们能够从中发现一些有用的或者有趣的东西.阅读这些博客将会非常有趣,有时会给你带来一些新鲜的想法. Google 的排名算法中,大型网站的排位会比较高.这对一些小型的高质量博客来说