- 浏览: 1327440 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (896)
- spring4 (14)
- hibernate3 (26)
- spring2 (35)
- struts2 (55)
- struts1 (15)
- 设计模式 (15)
- java (172)
- mybatis3 (11)
- sql (17)
- mysql (13)
- jbpm (10)
- J2EE (45)
- tools (29)
- js (83)
- 数据结构 (13)
- Html (26)
- web (22)
- flex (33)
- Oracle (57)
- linux (49)
- 算法 (6)
- 其它 (12)
- easyui (1)
- bootstrap (13)
- xml (2)
- tomcat (1)
- redis (10)
- activemq (2)
- webservice (11)
- maven (2)
- springboot (1)
- ubuntu (1)
- python (14)
- rocketmq (1)
- springcloud (10)
- opencv (1)
最新评论
-
mike_eclipse:
Hashtable是线程不安全的吗?好像是线程安全的吧?
多线程之集合类 -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
lodop打印控件 -
xingcxb:
经过测试,假的,依旧会出现中文乱码!!!!store方法里面采 ...
java 读写Properties文件,不会出现中文乱码 -
tiger20111989:
...
Spring注解方式管理事务 -
zw7534313:
...
js 文字上下滚动 无间断循环显示
两个double数相减错误:
实际上是转化错误
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DatMinus {
Workbook b;
String [] sss=new String[]{
"20120802 18:30:59", "20120802 18:31:00" //使用这两个参数,会出现错误结果?
};
/**
* 两个日期相减,换成小时数
*/
public static void main(String[] args) throws Exception{
DatMinus dm=new DatMinus();
for(int i=0;i<17;i++){
double dd=dm.minusDate(dm.sss[2*i], dm.sss[2*i+1]);
System.out.println(dd);
}
}
double minusDate(String date1,String date2) throws Exception{
SimpleDateFormat f=new SimpleDateFormat("yyMMdd HH:mm:ss");
Date d1=f.parse(date1);
Date d2=f.parse(date2);
double d1Hour=0.0f;
double d2Hour=0.0f;
d1Hour=d1Hour+d1.getHours()+d1.getMinutes()/60.0+d1.getSeconds()/3600.0;
d2Hour=d2Hour+d2.getHours()+d2.getMinutes()/60.0+d2.getSeconds()/3600.0;
double val=d2Hour-d1Hour; //问题就出现在这里,两个double相减,出现了科学计数的方式E
if(d2.getDate()-d1.getDate()>0){//不在同一天
val=val+24;
}
String v=String.valueOf(val);
String v2=v.substring(v.indexOf("."));
if(v2.length()>3){
v=v.substring(0,v.indexOf(".")+3);
}
System.out.println(v);
return val;
}
}
//两个double分别为:18.51638888888889 18.516666666666666 2.7777777777515666E-4
-------------使用BigDecimal解决精确计算,避免科学计算E的出现------
double minusDate2(String date1,String date2) throws Exception{
SimpleDateFormat f=new SimpleDateFormat("yyMMdd HH:mm:ss");
// SimpleDateFormat f2=new SimpleDateFormat("yyMMdd.HH:mm");
Date d1=f.parse(date1);
Date d2=f.parse(date2);
double d1Hour=0.0d;
double d2Hour=0.0d;
d1Hour=d1Hour+d1.getHours()+d1.getMinutes()/60.0+d1.getSeconds()/3600.0;
d2Hour=d2Hour+d2.getHours()+d2.getMinutes()/60.0+d2.getSeconds()/3600.0;
System.out.println(d1Hour+" ");
System.out.println(d2Hour+" ");
// double val=d2Hour-d1Hour;
if(d2.getDate()-d1.getDate()>0){//不在同一天
d1Hour+=(d2.getDate()-d1.getDate())*24;
}
MathContext mc=new MathContext(2,
RoundingMode.FLOOR);
BigDecimal bd1=new BigDecimal(d1Hour,mc);
BigDecimal bd2=new BigDecimal(d2Hour,mc);
BigDecimal bd=bd2.subtract(bd1);
double val=bd.doubleValue();
System.out.println(val);
return val;
}
------------------------------
//只处理了date2>date1的情况,没有处理date2<date1
String minusDate3(String date1,String date2) throws Exception{
SimpleDateFormat f=new SimpleDateFormat("yyMMdd HH:mm:ss");
Date d1=f.parse(date1);
Date d2=f.parse(date2);
double d1Hour=0.0f;
double d2Hour=0.0f;
d1Hour=d1Hour+d1.getHours()+d1.getMinutes()/60.0+d1.getSeconds()/3600.0;
d2Hour=d2Hour+d2.getHours()+d2.getMinutes()/60.0+d2.getSeconds()/3600.0;
// double val=d2Hour-d1Hour;
if(d2.getDate()-d1.getDate()>0){//不在同一天
d1Hour+=(d2.getDate()-d1.getDate())*24;
}
String v1=String.valueOf(d1Hour);
String v2=String.valueOf(d2Hour);
String v21=v1.substring(v1.indexOf("."));
if(v21.length()>3){
v1=v1.substring(0,v1.indexOf(".")+3);
}
String v22=v2.substring(v2.indexOf("."));
if(v22.length()>3){
v2=v2.substring(0,v2.indexOf(".")+3);
}
double val=Double.parseDouble(v2)-Double.parseDouble(v1);
String v4=String.valueOf(val);
String v44=v4.substring(v4.indexOf("."));
if(v44.length()>3){
v4=v4.substring(0,v4.indexOf(".")+3);
}
System.out.println(v4);
return v4;
}
发表评论
-
服务端推送multipart/x-mixed-replace
2023-12-07 15:26 420往网页分批推送数据:boundary=END,总头--> ... -
使用httpclient提交post请求
2020-08-22 08:35 484import org.apache.http.HttpEnt ... -
Groovy超强的Java动态计算能力
2020-06-25 09:03 697//Groovy超强的Java动态计算能力 groovy-2. ... -
bsh(BeanShell)动态执行java代码
2020-06-25 07:59 996import java.util.Date; /** * B ... -
延时任务处理订单超时方案
2020-05-23 16:05 1018JDK的延迟队列 方案是利用JDK自带的DelayQueue ... -
HttpsURLConnection
2020-04-29 10:51 868import java.net.URL; import jav ... -
Log4j的ConversionPattern参数的格式含义
2020-04-22 14:23 514Log4j的ConversionPattern参数的格式含义 ... -
thread 的join
2020-04-16 18:02 425java里面也有这个方法,Java Thread中, join ... -
GZIPOutputStream压缩文件
2020-04-16 17:52 796import java.io.BufferedReader; ... -
软引用SoftReference的使用
2020-04-16 15:48 588软引用SoftReference的使用 SoftRefere ... -
Fastjson
2020-04-15 14:53 410import java.util.ArrayList; imp ... -
6位随机数
2020-04-14 09:47 816import org.apache.commons.lang. ... -
Java加密和数字签名
2020-04-14 09:38 426Java加密和数字签名 消息摘要 这是一种与消息认证码结合使 ... -
DES加密、解密
2020-04-02 16:42 440import java.security.SecureRand ... -
Java利用 AES/ECB/PKCS5Padding 算法加解密
2020-04-02 11:19 1071对称加密、解密 import javax.crypto.Ci ... -
springboot中使用springmvc的拦截器-HandlerInterceptorAdapter
2018-12-13 16:04 1394springboot中使用springmvc的拦截器-Hand ... -
aspectj连接点
2018-12-13 15:55 607切点指示符 切点指示符 ... -
spring之AspectJ面向切面编程
2018-12-13 14:15 914spring之AspectJ面向切面编程 面向切面编程,实现 ... -
设计模式之策略模式
2018-05-30 21:17 563public class Person { priva ... -
使用反射将对象转Map
2018-05-27 17:33 734//使用反射将对象转Map<String, St ...
相关推荐
这里,我们要把计算得到的和存入30H单元,并且将后两个数相减的结果存入31H单元。减法操作的汇编指令可能是`SUB`,如`SUB num3, num4`,然后同样使用`MOV`指令将结果存入31H单元,如`MOV [31H], AX`(假设减法后结果...
汇编指令实现两个数字相减,通过汇编指令实现输出
最后,运行这个程序,它将在屏幕上显示两个压缩BCD码相减后的结果。 实验小结指出,这个实验相对简单,没有遇到重大问题,但强调了对程序的深入理解和精确性的重要性。对于学习微机原理与接口技术的学生来说,这样...
点云相减,顾名思义,就是将两个点云数据集进行操作,得到它们之间的差异部分。这一过程通常用于去除静态背景,突出动态或感兴趣的目标。在标题提及的场景中,“点云数据与背景数据相减,留下来的既是本体数据”,这...
本文将深入探讨如何使用OpenCV实现两个图像相减,这是一个基本但关键的操作,用于图像分析、背景消除以及运动检测等场景。 ### OpenCV实现两个图像相减 #### 核心概念解析: **图像相减**的基本原理是:对于两张...
例如,最大16位无符号整数(FFFFH)减去较小的数,结果可能会从零开始重新计数。因此,进行16位数相减时,我们需要检查结果的高字节是否发生了变化,以判断是否有溢出。 下面是一个简单的16位数相减函数示例,它...
实现两个数值型的日期相减得出天数的函数。
在Java编程语言中,`double`类型用于表示浮点数,但存在精度问题,尤其是在进行数学运算时。这是因为`double`是基于二进制浮点数标准(IEEE 754)来存储和计算的,这可能导致计算结果与预期的十进制值存在微小的差异...
在上面的语句中,我们首先创建了一个名为 XXX 的表,其中包含两个列:sort 和 qty。然后,我们插入了六条示例数据。 使用 CTE 计算相邻两条数据的差异 接下来,我们将使用 Common Table Expression(CTE)来计算...
构造两个多项式,分别输出,然后相减,将得到的结果输出,最后将得到的结果转置
在SQL语句中实现间隔行相减是一种较为高级的数据处理技巧,主要应用于需要对数据集中的数值进行基于位置的计算场景。例如,在财务分析、时间序列数据处理或统计学研究中,这种操作可以帮助我们理解数据随时间或其他...
实现读取不同excel数据 并对应相减。实现读取不同excel数据 并对应相减。
根据描述,我们需要执行两个步骤:首先是两个前向的数相减,然后是两个后向的数相加。在计算机中,减法通常通过加法的逆运算实现,即加上一个负数。因此,第一个操作可以表示为X - Y = Z1,其中X是第一个输入数,Y是...
java 两个日期相减得到的天数、毫秒数;获取两个日期中的最大日期;获取两个日期中的最小日期。
在PHP中,处理超大数字时,由于内置的数据类型限制,当数字的位数超过一定长度,PHP会自动将其转换为科学计数法表示。这可能会导致运算结果不准确或不符合预期。为了解决这个问题,我们可以采取一些策略来确保数字以...
在本次课程设计任务中,你需要实现一个程序,用于执行两个矩阵的基本运算,包括相加、相减、相乘以及计算转置矩阵。这些是线性代数中的基本操作,广泛应用于计算机图形学、科学计算、数据分析等多个领域。下面将详细...
本文将详细讲解如何使用C#实现两个时间相减的方法,并提供实例分析来展示具体的操作技巧。 首先,我们需要了解C#中的`DateTime`类型。`DateTime`是.NET框架中用于表示日期和时间的类,它提供了丰富的属性和方法,...
西门子博途1200 时间相减 西门子博途1200 时间相减是指在 Siemens STEP 7 (TIA Portal) 中,对 CPU 模块的日期和时间变量进行输入、读取和编辑。为了实现这一功能,需要使用特定的数据类型和指令。 在 S7-300/400 ...
设计一个稀疏矩阵运算器。实现两个矩阵相加、相减和相乘等的运算。矩阵的输入输出均按通常的阵列形式