- 浏览: 4558 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
最新评论
-
xiquwgugou:
1)
public String calTimeOfChang ...
(二)找零钱 -
mac521:
试过,可以实现
(一)判断奇数 -
arthur0592:
public Boolean isOdd(int i){
r ...
(一)判断奇数
文章列表
//计算一毫秒等于多少微秒
public void computation(){
final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;
final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
System.out.println(MICROS_PER_DAY / MILLS_PER_DAY);
}
打印值是多少?错了,输出值为5。Java中Integer最长为2147483648,24 * 60 * 60 * 1000 * 1000的结果超出了2147483648,所以MICROS_PER_ ...
- 2008-03-28 15:28
- 浏览 1920
- 评论(0)
曾经有过这样一个场景:一个物品价值1.1元,但是顾客只有2元零钱,这时候需要计算找给顾客剩余的零钱。
//找零钱
public String calTimeOfChange(){
System.out.println(2.00 – 1.10);
}
是否会显示0.90呢?不会,而是会显示0.8999999999999999。这是什么原因呢?在组成原理课上是这样讲的:计算机计算数值时,整数与整数计算,分数与分数计算,然后将两者计算之和合并起来。同时小数在计算机中的表示,其最高位是不参与计算的。所以0.10在当作double被计算机表示时,只是一个被认为无限接近0.10的值,所以计算结果就不能像我 ...
//判断是否为奇数
public Boolean isOdd(int i){
return (i % 2 == 1);
}
这个方法能正确执行么?对,它能正确执行,不过有25%的机会是错误的。因为i有可能是非正整数。例如:(a / b) * b + (a % b) == a这个等式是正确的么?答案是:在java中它不是永远正确的,因为在java运算符”%”的结果是正数还是负数是以运算符左边的数位依据的(数学中对求余是这样解释的:求余的前提条件是是自然数。时间长了,都忘记了,只好google一下-_-),例如a。所以对上面的方法做出修改:
public Boolean isOdd(int i){ ...