不精确数字比较问题
来源:互联网 发布:mac辣椒红 编辑:程序博客网 时间:2024/05/04 09:15
--排序是编程过程经常遇到的一类问题,同时人们也提出了各种各样的方法来提高排序的性能,以后有时间再复习一下各种排序。本文是解决一下排序之前的比较问题,因为只有比较了大小,才能有依据进行排序嘛。。。
--比较大小很自然的想到使用(> 、 < 、 ==),但是这三个运算符只是对于Int类型的数据、ASCII码中的字符可以实现直接比较,而对于浮点类型、double类型的数据则是行不通的,可以比较大小但不能判断是否相等,因为这种类型的数据在计算机中本来就不是精确存储的,除非你有办法实现运算符的重载。。。
--本文给出一种double类型数据判断相等的方法,即设定比较精度,只要可以根据实际需要让两个数相减,然后再与0比较就行啦。。。(low了,贵在知之为知之)
输入形式(自己可以使用double试试):
3
1 2 3
2 3 4
3 4 5
输出形式:(false表示前两个数不大于后面1个数)
Case #1:false
Case #2:true
Case #3:true
import java.util.InputMismatchException;import java.util.Scanner;public class Test { public static void cmp(double a,double b,double c){ double d=a+b-c; if(d>0.00001){ System.out.println("true"); } else{ System.out.println("false"); } }public static void main(String[]args){int N=0; int i=0; Scanner sc=new Scanner(System.in); try{ N=sc.nextInt(); }catch(InputMismatchException e){ e.printStackTrace(); } if(N<=0||N>10){System.out.println("Input is invalid");return;} double[]A=new double[N]; double[]B=new double[N]; double[]C=new double[N]; while(i<N){ try{ A[i]=sc.nextDouble(); B[i]=sc.nextDouble(); C[i]=sc.nextDouble(); ++i; }catch(InputMismatchException e){ e.printStackTrace(); } } int j=0; while(j<N){ System.out.print("Case #"+(j+1)+":"); cmp(A[j],B[j],C[j]); ++j; } }}
0 0
- 不精确数字比较问题
- freemarker的数字不精确问题
- 彻底解决Javascript数字计算不精确的问题
- javascript数字类型(Number)不精确问题
- 关于elasticsearch搜索不精确问题
- 浮点数不精确的问题
- 关于BigDecimal 的不精确计算问题
- 关机充电电量显示不精确问题
- float double浮点数不精确问题
- 解决 js 加法,乘法不精确问题
- 关于float计算结果不精确问题
- 解决ListView的smoothScrollToPosition不精确问题
- 数字比较的问题 short integer和数字比较
- 关于数字比较的格式统一问题
- javascript中比较数字发现的问题
- 数字比较大小并排序问题
- JavaScript中数字比较大小的问题
- js中的字符串数字比较问题
- chmod文件权限分配问题
- python中的urlencode与urldecode
- windows下搭建爬虫框架scrapy
- leetcode_c++:链表:add two numbers(002)
- MVP+Dagger2+Retrofit实现更清晰的架构
- 不精确数字比较问题
- RTSP交互过程
- SSH的用法
- 干货三:CountDownTimer倒计时工具类
- python中有很多字符串连接方式
- shell之curl用法笔记
- SDWebImage缓存图片
- 最大连续子序列求和详解
- UVA 10003 Cutting Sticks 区间dp