java的小数比较反例

double num = 0.3;
System.out.println(num);
System.out.println(num - 0.2);
System.out.println(num - 0.2 == 0.1);

结果为

0.3
0.09999999999999998
false
时间: 2024-11-12 06:59:05

java的小数比较反例的相关文章

java 取小数点后两位 不四舍五入,怎么做

java 取小数点后两位 不四舍五入,怎么做 正常版: //正常版: import java.text.DecimalFormat; import java.math.RoundingMode; DecimalFormat formater = new DecimalFormat(); formater.setMaximumFractionDigits(2); formater.setGroupingSize(0); formater.setRoundingMode(RoundingMode.F

java保留小数后两位的四种写法

java保留小数后两位的四种写法 package com.btzh.mis.house.utils; import java.math.BigDecimal;import java.math.RoundingMode;import java.text.DecimalFormat; /** * Double类型数据处理类 * @author weijixiang * @date 2017/10/17. */public class NumberUtil { public static Double

java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定

一. 计算机的小数计算一定范围内精确,超过范围只能取近似值: 计算机存储的浮点数受存储bit位数影响,只能保证一定范围内精准,超过bit范围的只能取近似值. java中各类型的精度范围参见:http://blog.csdn.net/longshenlmj/article/details/47616481 编程时注意: doulbe类型的数,不能用等号判定是否相等(或者是一定范围内可以).因为两次同样的计算(除法)结果可能出现小数部分不同.甚至极端的时候,初始化两个小数时,都可能不相等(用数值和字

Java将小数转换为成百分比输出

1 import java.text.DecimalFormat; 2 import java.text.NumberFormat; 3 4 import org.junit.Test; 5 6 public class TestCase { 7 /** 8 * 将小数装换成百分比输出 9 * 将double类型保留小数点后两位,转换成 10 */ 11 @Test 12 public void test(){ 13 // ====================================

Java中小数精度问题

代码如下:主要是利用java中写好的DecimalFormat类进行设置(#,0,%) import java.text.DecimalFormat; import java.util.Arrays; import java.util.Scanner; public class Main{ public static void main(String []args){ double num=21.4555; long n=453217964; System.out.println(new Dec

Java处理小数点后几位

//方式一: //四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //保留两位小数 --------------------------------------------------------------- 方式二: java.text.DecimalFormat df =new j

Java保留小数问题

1 import java.io.*; 2 import java.math.*; 3 import java.text.NumberFormat; 4 import java.util.*; 5 6 public class Main { 7 8 public static void main(String[] argc) { 9 Scanner cin = new Scanner(System.in); 10 while (cin.hasNext()) { 11 BigDecimal d =

Java将小数形式转换成分数形式

import java.util.Scanner; public class ChangeToFenshuDemo { public static int getGongYueShu(int a, int b) {//求两个数的最大公约数 int t = 0; if(a < b){ t = a; a = b; b = t; } int c = a % b; if(c == 0){ return b; }else{ return getGongYueShu(b, c); } } public st

java中小数处理,bigDecimal类应用

1.构造一个BigDecimal对象: 1 //创建一个BigDecimal对象,初始化必须使用字符串,因为用数值初始化会得到近似值,不准确 2 BigDecimal bigDecimalOne = new BigDecimal("1.232324"); 3 4 //将浮点数装换成BigDecimal对象 5 double d = 1.3422424; 6 BigDecimal bigDecimalTwo =BigDecimal.valueOf(d); 2.BigDecimal成员方法