黑马程序员技术交流社区
标题:
java小数点问题
[打印本页]
作者:
李琼
时间:
2012-10-15 13:43
标题:
java小数点问题
本帖最后由 liqiong0327 于 2012-10-22 20:03 编辑
package mianshiti;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入通话时间");
double time = sc.nextInt();
double monely = 0;
if (time < 0) {
System.out.println("输入有误");
} else if (time <= 3) {
monely = 0.2;
} else if (time > 3 && time % 1 == 0) {
monely = 0.2 + (time - 3) * 0.1;
} else if (time > 3 && time % 1 != 0) {
monely = 0.2 + (time - 3) * 0.1 + 0.1;
}
System.out.println(monely + "元");
}
}
计算电话费3分钟内0.2元,超过的按每分钟0.1元不足一分钟的按一分钟计算。 我的程序整数没问题小数不能执行。
作者:
qhasilver
时间:
2012-10-15 13:48
package mianshiti;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入通话时间");
double time = sc.nextDouble();
double monely = 0;
if (time < 0) {
System.out.println("输入有误");
} else if (time <= 3) {
monely = 0.2;
} else if (time > 3 && time % 1 == 0) {
monely = 0.2 + (time - 3) * 0.1;
} else if (time > 3 && time % 1 != 0) {
monely = 0.2 + (time - 3) * 0.1 + 0.1;
}
System.out.println(monely + "元");
}
}
复制代码
把sc.nextInt();改成sc.nextDouble();
作者:
梁世喜
时间:
2012-10-15 15:08
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入通话时间");
double time = sc.nextDouble();
double monely = 0;
if (time < 0) {
System.out.println("输入有误");
} else if (time <= 3) {
monely = 0.2;
} else{
monely=0.2+(Math.ceil(time)-3)*0.1;
}
System.out.println(Math.ceil(time));
System.out.println(monely + "元");
}
}
使用函数给你简化了以下,避开过多的判断
//Math.ceil() 求大于某个数的最小整数
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2