posted on 2008-03-09 17:18 DoubleJ 阅读(1018) 评论(9) 编辑 收藏
这个貌似是有问题的,判断一个双精度数字是否是0,最好是用范围来判断,不要直接和0进行比较。 回复 更多评论
大家可以提供一下自己的解决方案或代码! 回复 更多评论
真正的代码编写中遇到要求精确判断是否为0的业务时,肯定要使用BigDecimal的。 回复 更多评论
楼上的. 怎么实现. 贴个代码~! 回复 更多评论
((new BigDecimal(Double.toString(i))).compareTo(BigDecimal.ZERO))==0 回复 更多评论
看看这么写可行? public static boolean isZero(double d) { Double db=new Double(d); if(db.toString().equals("0.0")){ System.out.println("参数为0"); return true; }else{ System.out.println("参数不为0"); return false; } } 回复 更多评论
楼上的你测试了没? 回复 更多评论
不知道我的理解是不是对的! import java.io.Serializable; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class Test { public static void main(String[] args) { System.out.println(isZero("110.0")); } public static boolean isZero(String number) { int index=number.indexOf("."); if (index > 0&&index!=(number.length()-1)) { //严格来说这里还必须进一步进行验证该字符串是否为数字 //可以把字符串中的“.”替换掉,然后对该字符串进行分析来确认该字符串只包含数字(可以使用正则表达式) Double doubleNumber = new Double(number); double srcNumber = doubleNumber.doubleValue(); if (srcNumber == 0) { System.out.println("The double number is Zero!"); return true; } else { System.out.println("The double number is not Zero!"); return false; } } else { System.out.println("The value is not double number!"); return false; } } } 回复 更多评论
其实我们都搞错了. 今天看题目突然发现.他给你的就是一个double型的数据类型. 所以, 我觉得本来给出的方法应该就是对的.! 哎. 文字游戏 回复 更多评论
Powered by: BlogJava Copyright © DoubleJ