`
yuyue
  • 浏览: 23764 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

判断double大小

阅读更多
/**
	 * 把两个字符类型的参数,转换成double类型进行比较。
	 * 因为,double类型的精度问题,所以,用程序实现。
	 * @param a 传入的参数a
	 * @param b 传入的参数b
	 * @return a>b return 1 
	 *          a=b return 0  
	 *          a<b return -1 
	 */
	public int compareDouble(String a, String b){
		
		/*第一步比较两个数正负,两种方案,第一种,转换成double类型后与0相比。
		 * 							 第二种,截取字符前是否有"-"
		 * 使用第一种方案
		 */
		double a_double = Double.valueOf(a);
		double b_double = Double.valueOf(b);
		 if(!a.contains(".")){
			a+=".0";
		} if(!b.contains(".")){
			b+=".0";
		}
		if(a_double > 0 && b_double < 0){
			return 1;
		}else if(a_double < 0 && b_double > 0){
			return -1;
		} 
		/*同时为正数的情况比较*/
		else if(a_double >= 0 && b_double>=0){
	        //先比较整数,在比较小数 
			String a_integer = a.split("\\.")[0];
			String a_float = a.split("\\.")[1];
			String b_integer = b.split("\\.")[0];
			String b_float = a.split("\\.")[1];
			
			int integer_a_result = compareEveryData(a_integer,b_integer);
			//只有当结果为0的时候才比较小数
			if(integer_a_result==0){
				int float_a_result = compareEveryData(a_float,b_float);
				return float_a_result;
			}else{
				return integer_a_result;
			}
			    
		}
		
		
		/*同时为负数的情况比较*/
		
		else{
			
			 //先比较整数,在比较小数 
			String a_integer = a.split("\\.")[0];
			String a_float = a.split("\\.")[1];
			String b_integer = b.split("\\.")[0];
			String b_float = a.split("\\.")[1];
			
			int integer_a_result = compareEveryData(a_integer,b_integer);
			//只有当结果为0的时候才比较小数
			if(integer_a_result==0){
				int float_a_result = compareEveryData(a_float,b_float);
				return -float_a_result;
			}else{
				return -integer_a_result;
			}
			    
		}
		
	}
	/**
	 * 比较两个数的大小,不区分正负,不区分小数
	 * @param dataOne
	 * @param dataTwo
	 * @return dataOne > dataTwo return true else return false;
	 */
	public int compareEveryData(String dataOne, String dataTwo){
		 if(dataOne == null && dataTwo == null){
			 return 0;
		 }else if(dataOne == null && dataTwo != null ){
			 return -1;
		 }else if(dataOne != null && dataTwo == null){
			 return 1;
		 }
		 else if(dataOne.length()>dataTwo.length()){
			 return 1;
		 }else if (dataOne.length() < dataTwo.length())
		 {
			 return -1;
		 }else{
			 for(int i = 0 ; i< dataOne.length() ; i++){
				 int a_temp = dataOne.charAt(i);
				 int b_temp = dataTwo.charAt(i);
				 
				 if(a_temp>b_temp){
					 return 1;
				 }else if(a_temp < b_temp){
					 return -1;
				 }
				 
			 }
			 return 0;
		 } 
	}

 

分享到:
评论

相关推荐

    test2_JavaDouble类型比较大小_java编程_

    比较位模式后再转换回`Double`,可以更精确地判断两个`Double`值是否相等。 总结来说,当在Java中处理`Double`类型的数值比较时,应避免直接使用大于或小于符号,而是利用`Double.compare()`或`doubleToLongBits()`...

    Delphi 判断指定盘符的磁盘大小.rar

    Delphi 判断指定盘符的磁盘大小,delphi7判断磁盘空间大小,是检测程序所在磁盘的容量大小,并不是硬盘容量大小,希望注意哦。以下是相关代码:  function TForm1.GetCurDirSize: Double;  var  size:Double;  ...

    不使用sizeof 判断一个数据所占的内存大小

    比如常见的数据类型int、float、double等,在不同的系统架构和编译环境下可能会有不同的大小。比如,在32位系统上,一个int可能占用4个字节,而在64位系统上也是4个字节。然而,指针类型因为需要存储地址信息,其...

    C/C++ 大小端判断

    在C/C++编程语言中,大小端问题通常在处理多字节类型的数据时出现,例如int、long、float和double等。由于C/C++标准并未规定如何存储这些类型的数据,因此,不同的处理器架构可能会有不同的字节序选择。例如,Intel ...

    基于delphi 的两个数比较大小系统

    本项目“基于Delphi的两个数比较大小系统”是利用Delphi的强大功能来实现一个简单的数学逻辑应用,旨在帮助用户判断两个数值之间的关系——大于、小于或等于。 首先,我们要理解项目的结构。这个系统应该包含以下几...

    java代码-判断数字大小

    在Java编程语言中,判断数字大小是常见的任务,它涉及到基本的数据类型操作和比较运算符的使用。这里我们将深入探讨如何在Java中进行数字比较,包括整数和浮点数,以及相关的编程技巧。 首先,Java提供了两种主要的...

    Java作业比较两个数的大小

    本资源摘要信息主要涵盖Java作业的多个方面,包括比较两个数的大小、金字塔图案、闰年判断、随机数生成、数组操作、排序、形状类、员工类等多个方面。 ### 一、比较两个数的大小 在Java中,可以使用if-else语句或...

    MATLAB 矩阵元素的数据类型判断

    - `uint8`, `uint16`, `uint32`, `uint64`:无符号整数,对应大小的无符号整数。 - `logical`:逻辑型,用于表示真(true)或假(false)。 - `char`:字符型,用于存储字符串。 - `cell`:单元格数组,可以存储...

    道路的转向判断VB 通过三个点判断道路方向

    Function DetermineTurn(Ax As Double, Ay As Double, Bx As Double, By As Double, Cx As Double, Cy As Double) As String Dim ABx As Double, ABy As Double, BCx As Double, BCy As Double Dim crossProduct ...

    判断两圆相对位置(C语言代码)

    struct circle { double x,y,r; }; 表示圆。x、y是圆点坐标,r是半径。 写函数int cover( circle c1, circle c2 ),如果c1、c2一个能...不是只判断半径大小,是两个圆各在自己的位置(圆心决定),一个能否盖住另一个。

    用VC#语言编写的比较大小的例子

    在编程领域,比较大小是基础操作之一,尤其在C#这样的面向对象的编程语言中,这一功能被广泛应用于各种逻辑判断和算法实现。本例子通过VC#(Visual C#)来演示如何比较多个数值的大小关系,这有助于理解C#的基础语法...

    VB加壳 脱壳检测大小自校验.rar

    查看压缩后文件大小,回到这里,修改数值比压缩后的大小大那儿一些就够了,如果被脱壳了,程序体积就会膨胀,从而被我们检测出来,当然要注意了,如果是保护壳的话,加壳后反而更大,这个时候,我们的判断  语句就要反...

    c# 动态改变控件位置、控件大小、拖动控件

    在`MouseMove`事件中,根据鼠标与边框的关系来判断是否改变控件大小。这通常需要更复杂的逻辑,可能需要自定义控件或者使用第三方库来实现。 5. **窗体大小改变时控件大小跟随调整**: 当窗体大小改变时,你可以...

    Java 2实用教程(第三版)实验指导与习题解答

    实验2 比较日期的大小 21 实验3 处理大整数 22 上机实践6 组件及事件处理 23 实验1 算术测试 23 实验2 信号灯 25 实验3 布局与日历 28 上机实践7 组件及事件处理2 31 实验1 方程求根 31 实验2 字体对话框 34 实验3 ...

    C语言之struct大小、首地址与内存对齐[借鉴].pdf

    在GCC中,对齐模数的准则是按照成员大小的整数倍,但如果成员大小小于等于4,则按照上述准则进行,如果大于4,则结构体每个成员相对于结构体首地址的偏移量(offset)只能按照是4的整数倍来进行判断是否添加填充。...

    比较两个数的大小,有问题希望一起交流,C#.NET

    在涉及浮点数比较时,通常会设定一个很小的阈值(如`double.Epsilon`)来判断两个浮点数是否“相等”: ```csharp double d1 = 0.1, d2 = 0.100000000001; if (Math.Abs(d1 - d2) &lt; double.Epsilon) { Console....

    CC++语言中判断数据类型长度符

    ### CC++语言中判断数据类型长度符 #### 一、概述 在C/C++语言中,`sizeof`是一个非常重要的关键字,它用于获取一个对象或类型所占用的内存空间大小。这一特性对于深入理解内存管理和数据类型至关重要。下面将详细...

    比较Max and min大小

    在编程领域,比较大小是日常任务之一,无论是在算法实现、数据处理还是逻辑判断中都不可或缺。本主题将深入探讨如何在Java编程语言中比较两个数值(最大值和最小值)的大小。Java提供了多种方法来执行这种比较,包括...

    PHP 数据类型和判断变量类型

    2. **浮点型(Float / Double)**:用于存储小数或科学记数法表示的数字。需要注意的是,浮点数在计算机中通常不是完全精确的,可能存在微小的误差。 3. **字符串(String)**:由一个或多个字符组成的序列。PHP...

Global site tag (gtag.js) - Google Analytics