首页 > 代码库 > 分支-04. 出租车计价(四舍五入)

分支-04. 出租车计价(四舍五入)

本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:

  • 起步里程为3公里,起步费10元;
  • 超起步里程后10公里内,每公里2元;
  • 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
  • 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费 )。 

    输入格式:输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。

    输出格式:在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。

    输入样例1:2.6 2
    输出样例1:10
    输入样例2:5.1 4
    输出样例2:14
    输入样例3:12.5 9
    输出样例3:34
import java.util.Scanner;  public class Main {    public static void main(String[] args)    {        int step = 10;//起步价        Scanner s = new Scanner(System.in);            String input = s.nextLine();            String[] inputs = input.split(" ");            if(inputs.length == 2)            {                    float roads = Float.parseFloat(inputs[0]);                int time = Integer.parseInt(inputs[1]);                int i = (int) roads/3;//判断是否超出3公里                int j = (int) time/5;//判断是否超出5分钟                if(j < 1)//5分钟内                {                    if(i<1)//3公里内(不含3公里)                     System.out.print(step);                    else                     {                        if(roads <= step)//大于等于3公里小于等于10公里                         System.out.print(Math.round(step+(roads-3)*2));                        else //大于10公里                         System.out.print(Math.round(step+14+(roads-10)*3));                      }                }                else//超过5分钟                {                    if(i<1)                     System.out.print(step+2*j);                    else                     {                        if(roads <= step)                         System.out.print(Math.round(step+(roads-3)*2+2*j));                        else                          System.out.print(Math.round(step+14+(roads-10)*3+2*j));                      }                }            }    }}

Java的四舍五入:

(转载自http://blog.csdn.net/shangboerds/article/details/7477336

Java 的 Math 和 StrictMath 类提供了一些关于数学运算的静态方法. Math 类中的方法运行速度更快而 StrictMath 类中的方法更为精确.

Math 和 StrictMath 类提供了以下四个方法来进行四舍五入运算:

  ceil // 天花板
  round // 四舍五入, 返回整数
  rint // 四舍五入, 返回浮点数
  floor // 地板

来看下面代码的结果, 你就知道它们的意思了。

    public static void main(String[] args) {        System.out.println("ceil testing");        System.out.println("1.4 --ceil--> " + Math.ceil(1.4));        System.out.println("1.5 --ceil--> " + Math.ceil(1.5));        System.out.println("-1.4 --ceil--> " + Math.ceil(-1.4));        System.out.println("-1.5 --ceil--> " + Math.ceil(-1.5));        System.out.println();        System.out.println("round testing");        System.out.println("1.4 --round--> " + Math.round(1.4));        System.out.println("1.5 --round--> " + Math.round(1.5));        System.out.println("-1.4 --round--> " + Math.round(-1.4));        System.out.println("-1.5 --round--> " + Math.round(-1.5));        System.out.println();        System.out.println("rint testing");        System.out.println("1.4 --rint--> " + Math.rint(1.4));        System.out.println("1.5 --rint--> " + Math.rint(1.5));        System.out.println("-1.4 --rint--> " + Math.rint(-1.4));        System.out.println("-1.5 --rint--> " + Math.rint(-1.5));        System.out.println();        System.out.println("floor testing");        System.out.println("1.4 --floor--> " + Math.floor(1.4));        System.out.println("1.5 --floor--> " + Math.floor(1.5));        System.out.println("-1.4 --floor--> " + Math.floor(-1.4));        System.out.println("-1.5 --floor--> " + Math.floor(-1.5));    }

结果:

ceil testing1.4 --ceil--> 2.01.5 --ceil--> 2.0-1.4 --ceil--> -1.0-1.5 --ceil--> -1.0round testing1.4 --round--> 11.5 --round--> 2-1.4 --round--> -1-1.5 --round--> -1rint testing1.4 --rint--> 1.01.5 --rint--> 2.0-1.4 --rint--> -1.0-1.5 --rint--> -2.0floor testing1.4 --floor--> 1.01.5 --floor--> 1.0-1.4 --floor--> -2.0-1.5 --floor--> -2.0

 

分支-04. 出租车计价(四舍五入)