java的double的精度问题
在java中,使用double进行运算,有时会出现精度丢失的问题,值会有那么0.00000***1偏差的偏差,导致匹配校验常常出现问题
解决方案如下:
/**
* 对double数据进行取精度.
* @param value double数据.
* @param scale 精度位数(保留的小数位数).
* @param roundingMode 精度取值方式.
* @return 精度计算后的数据.
*/
public static double round(double value, int scale,
int roundingMode) {
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(scale, roundingMode);
double d = bd.doubleValue();
bd = null;
return d;
}
/**
* double 相加
* @param d1
* @param d2
* @return
*/
public double sum(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.add(bd2).doubleValue();
}
/**
* double 相减
* @param d1
* @param d2
* @return
*/
public double sub(double d1,double d2
相关文档:
org.apache.commons.net.ftp.*中的FTPClient类实现的FTP上传下载功能:
需导入Apache的commos-net的jar包,若导入的是1.4版本的包,则FTPFile[] fileList = ftpClient.listFiles()的执行过程中可能会报错,此时更换导入2.0版本的jar包,问题即可解决。
代码如下:
package com.java.ftp;
import java.io.File;
import ......
1,概述:线程的挂起操作实质上就是使线程进入“非可执行”状态下,在这个状态下CPU不会分给线程时间片,进入这个状态可以用来暂停一个线程的运行;在线程挂起后,可以通过重新唤醒线程来使之恢复运行。当一个线程进入“非可执行”状态,即挂起状态时,必然存在某种原因使其不能继续运行,这些原因可能 ......
public static void main(String[] args) {
String DATE_FORMAT = "yyyy-MM-dd";
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
DATE_FORMAT);
Calendar c1 = Calendar.getInstance();
c1.set(1999, 0, 14);
&n ......
用三种方法来实现字符串的反转
/**
* @(#)ReverseString.java
*
* ReverseString application
*
* @author
* @version 1.00 2010/4/20
*/
import java.util.*;
import java.io.*;
public class ReverseString {
public static void main(String[] args) throws IOException{
......
一般,有3种使用锁进行同步的方法
a.方法同步,例如public synchronized void xxx()...
b.静态方法同步,例如public static synchronized void xxx()...
c.程序块同步,例如
...
&n ......