public class Round {
private static double ROUND_FACTOR = 0.000000000001;
public static double round(double val,int length){
double duke = 1;
for(int i=0;i<length;i++){
duke = duke*10;
}
return Math.round(val*duke + ROUND_FACTOR)/duke;
}
}这是一个精确的算法。因为直接用Math.round()会出问题。
private static double ROUND_FACTOR = 0.000000000001;
public static double round(double val,int length){
double duke = 1;
for(int i=0;i<length;i++){
duke = duke*10;
}
return Math.round(val*duke + ROUND_FACTOR)/duke;
}
}这是一个精确的算法。因为直接用Math.round()会出问题。
解决方案 »
- 如何用JAVA上传所有类型的文件且满足文件名为中文的情况
- 用dispose关闭当窗口后如何再显示
- thinking in java(第三版,中文)买回家了
- 急求: 4个角带圆弧的JButton
- 关于getSelectionStart()、getSelectionEnd()、replaceRange()方法的问题
- 大家帮我看看这段程序,我不是很懂,能不能帮忙解释一下
- 再问一个java基础问题
- 连接到ORACLE9I,中文数据取出来是乱码?怎么办啊!!!!!!!!!!
- double类型的转换,在线等候
- SQLSERVER 怎样才能支持中文呢?请快速回复!谢谢
- 在WEB开发中war文件具体是包含什么?他是怎么生成的?(如:jar文件是用jar生成的)主要用在什么地方?主要作用是什么?
- 新手上路,第一次使用JBuilder,有点麻烦,各位帮帮忙!
private static double ROUND_FACTOR = 0.000000000001;
public static double round(double val,int length){
double duke = 1;
for(int i=0;i<length;i++){
duke = duke*10;
}
return Math.round(val*duke + ROUND_FACTOR)/duke;
}
}这是一个精确的算法。因为直接用Math.round()会出问题。
DecimalFormat df = new DecimalFormat( "#*.##" );
String s = df.format( result.getDouble() );
不过JDBC中对SQL DECIMAL数据类型对应的Java类型是BigDecimal,不是double。