Java 小数精确计算问题

System.out.println(2.00 -1.10);//0.8999999999999999

上面的计算出的结果不是0.9,而是一连串的小数。问题在于1.1 这个数字不能被精确表示

为一个double,因此它被表示为最接近它的double 值,该程序从2 中减去的就是这个值,

但这个计算的结果并不是最接近0.9 的double值。

一般地说,问题在于并不是所有的小数都可以用二进制浮点数精确表示。

二进制浮点对于货币计算是非常不适合的,因为它不可能将1.0 表示成10 的其他任何负次

幂。

解决问题的第一种方式是使用货币的最小单位(分)来表示:System.out.println(200-110);//90

第二种方式是使用BigDecimal,但一定要用BigDecimal(String)构造器,而千万不要用

BigDecimal(double)来构造(也不能将float或double型转换成String再来使用BigDecimal(String)

来构造,因为在将float或double转换成String时精度已丢失)。例如new BigDecimal(0.1),它

将返回一个BigDecimal,也即

0.1000000000000000055511151231257827021181583404541015625,正确使用BigDecimal,程

序就可以打印出我们所期望的结果0.9:

System.out.println(new BigDecimal("2.0").subtract(new BigDecimal("1.10")));// 0.9

另外,如果要比较两个浮点数的大小,要使用BigDecimal的compareTo方法。

相关文档:

public class Test {

public static void main(String args[]) {

System.out.println(Integer.toBinaryString(20));   //十进制-->2进制

System ......

受到“15年你积累了什么”一文的震动,特别收集该文学习

Java gc

关键字: java gc, 垃圾回收机制

1.JVM的gc概述

gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收 ......

JAVA文件操作总结

File类

File f = new File(path);

path为实际路径,该路径可以是文件,或文件夹,也可以是不存在的。

f.exists() 可以判断该路是否存在。

f.isDirectory() 可以判断是否是文件夹。

f.mkdirs(); 递归创建文件夹

File和输入输出流之间纽带FileInutStream,FileOutputStream

URL url = new URL(strUr ......

昨天看到这样一篇帖子,讨论类加载顺序的,也可以说是初始化顺序的,今天早上找不到了,本来想回复的,现在自己写博客回复了,呵呵

public class Singleton {

private static Singleton obj = new Singleton();

public static int counter1 ;

public static int counter2 = 0;& ......

annotations : 注释

好处

1.文档编制

2.编译器检查

3.代码分析

JSR 175 是编程语言的元数据工具,为将元数据合并到核心java语言中提供正式理由和说明

基本知识:

注释采用"@"标记形式,后面是注释名称,然后在需要数据时,通过name=value对向注释提供数据

注释的三个基本种类:

标记注释 ......

java算小数_Java 小数精确计算问题相关推荐

  1. java金额比较大小_JAVA中精确计算金额BigDecimal

    packagecom.chauvet.utils;importjava.math.BigDecimal;importjava.text.DecimalFormat;importjava.text.Nu ...

  2. java float 加法_JAVA 实现精确的加减乘除运算

    JAVA在加减乘除运算时易发生精度丢失,达不到我们想要的计算结果:为了能够精确表示.计算浮点数,JAVA提供了BigDecimal类,可以以BigDecimal为基础定义一个Arith工具类,代码如下 ...

  3. java求长方体_Java练习 SDUT-3337_计算长方体、四棱锥的表面积和体积

    ###计算长方体.四棱锥的表面积和体积 Time Limit: 1000 ms Memory Limit: 65536 KiB ####Problem Description 计算如下立体图形的表面积 ...

  4. java 整型_Java整型计算

    整型计算 今天做LeetCode看到一道题,翻转整型,其中一行代码if ((newResult - tail) / 10 != result)表示超出范围就会有损失,有点不太明白,正好之前复习过原码, ...

  5. java对角线之和_java编程之计算矩阵对角线和(从命令窗输入数据)

    /* *求10行.10列整型方阵对角线上元素之和 */ import java.util.Scanner; class linesum{ public static void main(String ...

  6. java算程序运行时间_关于计算Java程序运行时间

    第一种是以毫秒为单位计算的. Java代码 //伪代码 long startTime=System.currentTimeMillis();   //获取开始时间 doSomeThing();  // ...

  7. java 如何计算时间段_Java程序来计算两个时间段之间的时差

    Java程序来计算两个时间段之间的时差 在此程序中,您将学习计算Java中两个时间段之间的时差. 示例:计算两个时间段之间的时差 public class Time { int seconds; in ...

  8. java特征向量计算_Java与Python计算特征向量的区别

    在apachecommons math3中,EigenDecomposition接受非对称矩阵,但它使用RealVector和{}类返回结果.为了得到实际的复杂结果,您必须将适当的实际结果组合成复共轭 ...

  9. java算软件工程_Java简单计算器的实现

    Java简易计算器的实现,供大家参考,具体内容如下 操作流程 用户通过输入要被运算的数字和运算符,进行数字的运算,例如用户输入2+2则会输出4. 加法运算截图 减法运算截图 乘法运算截图 除法运算截图 ...

最新文章

  1. cmake重新编译matlab,ubuntu系统下cmake 编译matlab中mex文件
  2. redis 集群搭建_Redis分布式缓存分布式集群搭建
  3. DS-5/RVDS4.0变量初始化错误
  4. Allegro16.6软件布局设计技巧:模块复用
  5. 一种绕过Android P对非SDK接口限制的简单方法
  6. Exchange 2003 限制用户外发邮件
  7. 最优化理论与方法(part2)--矩阵求逆和广义逆
  8. Debian下IPv6设定主地址 Set primary IPv6 address under Debian Linux
  9. 月均数据_程序员月均薪多少,2019全国互联网行业程序员就业大数据报告
  10. 了解机器学习框架CoreML
  11. Controller接口控制器(5)
  12. 菜鸟学Linux - bash的配置文件
  13. 从零开始学习搜索引擎(开篇)---Searcharoo.net
  14. matlab双因素模型,matlab双因素方差分析
  15. Mysql之DDL(数据定义语言)
  16. 财经365热点:当阿里巴巴不再讲“中台”
  17. 计算机专业的男生喜欢你,男生真心喜欢你的五个表现
  18. 谷歌浏览器安全证书不受信任_windows7系统下谷歌浏览器提示该网站的安全证书不受信任如何解决...
  19. Learning to Write Stylized Chinese Charactersby Reading a Handful of Examples
  20. 南卫理公会大学 计算机排名,南卫理公会大学美国大学排名及专业排名汇总(USNEWS美国大学排名版)...

热门文章

  1. mysql的order by_mysql中的order by
  2. 使用git的正确方式,Git操作不规范,代码被吞两行泪
  3. 2020.7.13 跑步记录
  4. 2006年中国商业科技100强---有哪些是您熟悉的公司呢?
  5. 联想x3850x6重装系统_联想 System x3850 X6 和x3950 X6 安装与维护指南 PDF
  6. ElasticSearch快速入门详解(亲测好用,强烈推荐收藏)
  7. 2.5年前端小白总结
  8. 计算机视觉——Bag-of-words
  9. Oracle processes和sessions参数修改
  10. vue使一个div布满全屏