System.out.println(1 - 0.7); 打印结果问题,这么会是:0.30000000000000004 ?

[code="java"]System.out.println(1 - 0.3 );
System.out.println(1 - 0.7 );
System.out.println(1 - 0.8 );
System.out.println(1 - 0.9 ); [/code] 打印的结果是:
[table]
|0.7
|
|0.30000000000000004
|
|0.19999999999999996
|
|0.09999999999999998|
[/table]
谁知道原因吗?

0

1个回答

java中默认浮点数的加减,返回的double型 这和数据类型的精度有关

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
System.out.println(1 - 0.7); 打印结果问题,这么会是:0.30000000000000004 ?
[code="java"]System.out.println(1 - 0.3 );rnSystem.out.println(1 - 0.7 ); rnSystem.out.println(1 - 0.8 ); rnSystem.out.println(1 - 0.9 ); [/code] 打印的结果是: rn[table]rn|0.7rn|rn|0.30000000000000004rn|rn|0.19999999999999996rn|rn|0.09999999999999998|rn[/table]rn 谁知道原因吗?rn
浮点运算,为何0.1+0.2=0.30000000000000004?而非0.3!
浮点运算,为何0.1+0.2=0.30000000000000004?而非0.3! 小数的进制表示了1的细分的份数,十进制的1能细分10份, 二进制的1只能细分两份。一斤肉用十进制切可以切出1两来, 用二进制只能切出五两,去买三两肉,十进制可切三个一两给你, 用二进制就麻烦了,给你五两太多,只能把五两肉再切2份, 成了二两五,又不够三两,就再把剩下的二两五再切2份, 成了一两二分五,二...
使用system.out.println输出类名问题
在Java中,直接将类的对象使用system.out.println输出,其中输出的类的具体名和后面的一串字符, package com.neusoft.wangx; public class MyClass { public static void main(String[] args) { MyClass2 myClass2 =new MyClass2(); System.
输出2.0-1.1的结果
最近在coreJava中看到,执行System.out.println(2.0-1.1)这条语句之后,控制台输出的结果不是0.9,于是我抱着试试看的态度执行了一下。结果如下: 0.8999999999999999 我想一般正常的人类都会计算出2.0-1.1=0.9这个答案,因此计算机给出的这个答案就显得有些奇怪。而当我们执行以下代码的时候,控制台输出的结果又是0.9了。 float f1=2
将System.out.println()打印的内容输出到文件
将System.out.println()打印的内容输出到文件
用Java输出语句1-0.9等于0.1
第一种方法: System.out.printf("%.1f",1.0-0.9); 第二种方法:  System.out.println(new BigDecimal("1").subtract(new BigDecimal("0.9"))); 报错 你调用 divide 时 四舍五入即可,无线循环小数,计算机要如何处理? 所以,divide 方法有多个参数,调用多个参数方...
hadoop中System.out.println输出内容的查看
hadoop中System.out.println只有在main方法可以输出到控制台,如果是在map或reduce方法不可以在控制台看到,但是, 我们可以在hadoop安装目录下的logs/userlogs/container_****/stdout中看到,如果是在集群环境下,每台机器会有 不同的stdout,可以查看完,找到自己希望看到的。
用eclipse开发servlet,使用System.out.println()在console打印不出数据的问题
很多的时候当我们发现我们写的servlet出了问题的时候都会下意识的去在相关的地方插入System.out.println()打印出当前获得的数据吧,但是在开发servlet的时候,你就会发现,自己刚写的打印语句执行工程之后并没有打印出来,你就会想了吧,大多的新手根本就不知道真正的问题出在哪里,去网上百度一下,发现了很多的东西,就像什么java文件没有被编译成为class,还有servlet的位置
systemoutprintln中的东西都是以字符串输出的
system.out.println中的东西都是以字符串输出的 基本类型会调用包装类的.toString(),的方法。 空的String后面跟随+和一个空的类型的变量,这样的话可以省去调用现实的Integer.toString()方法。...
System.out.println()中传入null会发生什么
之前做了思科大数据开发工程师的笔试题,其中有一道题目是判断一段Java代码的输出结果,最后实质上是判断System.out.println()括号中如果传入null会输出什么。大公司考的题目都很细很考验功底,所以记录下这个平时有些忽略的细节。在回顾当时的题目时,找到一个国外大学的教师写的博客讲得很详细: https://yourbasic.org/print-null-java/ 主要的意思就...
idea 输出打印System.out.println()的快捷方式
idea里,直接输入 sout ,然后出现提示 直接敲回车 就可以了。 -------------------------------------------------- 华丽的分割线-------------------------------------------------- 推送,博主整合了 idea 的一些常见的快捷键操作以及一些其他的问题, 包括创建项目、git...
myeclipse出现的不能编译和console没有打印System.out.println()
初稿: project clean后不能自动编译,classes文件为空 红色感叹号
Java基础学习之用System.out.println()输出中文字符串乱码问题
问题描述: 在学习“java基本数据类型”相关知识点过程中,使用不同文本编辑器编写java源代码文件在cmd控制台中编译和运行过程中多次出现乱码情况。  电脑操作系统:win10 企业版 文本编辑器:Notepad(Windows自带记事本)、EditPlus、Notepad++、Sublime Text3 执行环境:Windows控制台(cmd) 1、字符编码 关于字符编码的产生...
Java线程可见性——加一句System.out.println后运行结果不一样?
今天突然想起一个以前有人提到过的问题,大概就是A线程持有一个引用类型b变量(不加valotile或者final),A通过检查b的状态来控制A线程的循环退出,然后主线程通过引用修改了b的值,按理说因为A线程的b变量(真正的b实际上还在堆里面)被拷贝到线程内存里面,无法察觉到主线程对b的修改,运行结果的确是这样,只要主线程不结束(阻塞住),A线程就会一直阻塞住...
MapReduce编程System.out.println输出在哪里可找到?
MapReduce编程System.out.println输出在哪里可找到? 转载请注明出处: 【http://datasearch.ruc.edu.cn/~boliangfeng/blog】,谢谢。 刚进行MapReduce编程时,很多人都会问这样的问题Map Reduce函数中的System.out.println打印输出为什么在终端屏幕看不到? 事实上语句是运行的,只不过Job
MR程序中查看使用System.out.print()输出的内容
由于我们的MR程序一般是运行在集群上的,因此在MR程序中写的System.out.print()的内容是不会打印在屏幕上的,只能去NodeManager的日志中查看。具体的路径如下:$HADOOP_HOME/logs/userlogs/<job_id>/<container_id>/ 一般会有下面三个文件:-rw-r--r-- 1 root root 1710 3月 11 23:34 stder
android工程下怎么查看System.out.println()信息
之前用eclipse写java程序时看log都是用的System.out.println(),开法android程序时再用就不可以了。 琢磨了好久 其实也可以 哈哈: 在Logcat窗口下单击绿色“+”号: 这样就可以看到输出的信息了 简单吧 。你也试一试吧。
**System.out.println() 输出为空不会往下执行,且不报错**
System.out.println() 输出为空不会往下执行,且不报错 今天在用ssh做登录页面的时候发现输入错误的用户名和错误的密码时jsp页面不会接收到request传来的login_infos,经过调试后发现程序卡在System.out.println(emp.getEname())这句话上,代码如下 public String doLogin(){ Emp emp ...
java初级_单个整数的赋值问题与System.out.println()的使用方法
java初级_单个整数的赋值问题与System.out.println()的使用方法
Object类、常用API作业题
练习一、简述String类中的equals方法与Object类中的equals方法的不同点。 答:String类中的equals方法是用来判断两个对象的内容是否相同,而Object 类中的equals方法是用来判断两个对象是否是同一个对象,所谓同一个对象指的是内存中的同一块存储空间。(可以重写equals方法,比较对象的属性)   练习二、不运行代码,直接说出打印结果,并解释原因。 pu...
为什么System.out.println();不报控制针异常
为什么突然间想到这个呢,是因为看到jdk1.5 的静态导入 package newFeatures5; import static java.lang.System.out;//静态导入 public class staticImport { public static void main(String[] args) { out.println(); } } 不好奇不知道,一好奇吓一
System.out.println()不在控制台中显示输出
对于System.out.println()直接输入c:/>my.jar 不会显示输出结果应使用c:/>java -jar my.jar
System.out.print和System.err.println以及静态和构造函数的输出时的顺序怪异问题???
public class TestCodeSeg { static { System.out.println("1"); } { System.out.println("2"); } public TestCodeSeg() { System.err.println("3"); }
JAVA中如何把system.out.println里的内容写入文件
JAVA中如何把system.out.println里的内容写入文件 我在java编程时,有一个程序,本来执行的时候,每次符合条件都会用System.out.println往控制台里显示数据,由于某些情况下,显示在控制台的数据特别多,我想用程序实现,将控制台的全部输出显示写入一个文本文件中去。 用这个简单 PrintWriter out= new PrintWr
System.out.println()对于内存可见性的影响
群友发了一段代码,说变量没有加volatile,但是依旧可见,代码大致如下: public class StopThreadTest implements Runnable { private boolean flag = true; public static void main(String[] args) throws InterruptedExc...
Hibernate培训A组测试题
 (1)以下哪条SQL语句的作用是从CUSTOMERS表查找出性别为女性,并且按照年龄升序排列?(单选)A) select * from CUSTOMERS where GENDER=/"女性/" order AGE B) select * from CUSTOMERS where GENDER=/"女性/" order by AGE DESC C) select * from CUSTOMERS
JAVA中2.0-1.1不是0.9的问题
1、主要是因为十进制数转化为二进制数是可以精确转化地,而浮点型数据转化为二进制数时可能存在精度丢失问题。 所以在输出System.out.println(2.0-1.1);结果会是0.8999999999 2、在C语言中,同样进行2.0-1.1运算,结果却可能随着输出语句变换而变化 printf("%f",2.0-1.1);结果是0.9,主要是因为C默认输出6位二进制数,将结果截断导致的
java在调用System.out.println()打印一个新new的对象时,为什么会调用toString方法?
在Java中,所有的对象都是继承自Object,自然继承了toString方法,在当使用System.out.println()里面为一个对象的引用时,自动调用toString方法将对象打印出来。如果重写了tostring方法则调用重写的toString 方法。 因为System.out.println()的这个方法源码中调用了String.valueOf(Objec o), publ
JAVA蓝桥杯(1)字符排序
问题描述算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。解决方法import java.util.Scanner; import java.util.Vector;public class Question1 { public static
【Java】数组和List打印(System.out.println)的区别
【Java】数组和List打印(System.out.println)的区别 1、数组: 数组打印是半个中括号,只有前面一个[ [Ljava.lang.Object;@1f983a6 2、List: List打印是一对中括号,前后都有[] [c001, 电器]
system.out.print调试没结果或结果不变问题
在jsp中调用java方法,在java方法中用system.out.println调试tomcat控制台没输出结果或者输出结果没变时,tomcat问题,重启tomcat,
java获取System.out输出内容
ByteArrayOutputStream baoStream = new ByteArrayOutputStream(1024); PrintStream cacheStream = new PrintStream(baoStream); PrintStream oldStream = System.out; System.setOut(cacheStream);//不打印到控制台 Sy
RDD中println打印问题随笔
本以为本地测试打印,因为是.setMaster(&quot;local[1]&quot;),并且getNumPartitions返回1,所以打印应该跟collect到driver后打印应该是一样的。但是事实并非如此,今天无意中发现,RDD中只有2行的打印会在正常的打印2行后,多出N行,断点打印发现,正常打印完2行后,明明顺序往下执行了,但是后面程序又跳回到了RDD中打印了。原因:RDD被后面代码反复引用,但是没有pe...
java一条System.out语句打印多个变量
int a = 1111; int b = 2222; System.out.println(a+&quot; , &quot;+b);    //通过“+”对字符串进行拼接 System.out.printf(&quot;%d,%d&quot;,a,b);    //通过占位符,打印多个变量   占位符介绍(printf支持的格式):           %c        单个字符            %d      ...
Android logcat中system.out.println()可以输出,但是log.d()的却看不到输出信息
这两天一直被这个问题郁闷着
servlet中关于System.out.println输出中文乱码的问题
新入手一台mpb,由于自己做的是Java Web的开发,鉴于平时的习惯,选择了Eclipse J2EE 4.2 + tomcat7.0,具体搭建环境的过程在这里不加赘述,主要记录搭建环境后的自己新建了一个测试项目,很简单的一个servlet,但是在其中用system输出中文则为乱码。关于这个问题搜索了很久,但是网络上大部分都说有关servlet和jsp之间交互乱码的问题,没有找到合适的。经过一晚...
05_留意i--与System.out.println()在多线程中的异常
先上例子,赋值i=5,然后i--,用5个线程跑 MyThread.java package sys_out_print_i; public class MyThread extends Thread{ private int i = 5; @Override public void run(){ System.out.println("i="+(i--)+" thread
Java如何打印数组之Array.ToString()
Arrays.toString() 对于一维数组:String[] arrayStr = new String[]{"Java", "Node", "Python", "Ruby"}; System.out.println(**Arrays.toString**(arrayStr));Output :[Java, Node, Python, Ruby] 对于二维数组:String[][] arr
System.out.println 的多线程并发问题
如果println函数的参数为常量则不会出现线程并发问题,但是如果参数为表达式形式,则JVM在执行println函数的时候会分为几步来执行,从而造成并发问题。
System.out.println()标准输出方法性能影响
问题:在java项目中使用system.out来打印调试信息很方便,项目上线时QA说system.out非常影响服务性能,建议全去掉。 原因:system.out 和java运行程序运行在同一线程,也就是说,业务程序会等待system.out的动作,导致资源被占用。 解决办法:改用log4j 等工具进行调试信息的打印。这类工具是异步线程的,不会使程序处于等待状态。 参考:System.out...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习大数据的怎么这么少 网页窗口视频这么制作