1. package ord;
  2. import java.util.ArrayList;
  3.  
  4. public class order {
  5. public String orderid;
  6. public user user;
  7. public ArrayList<product> pdls;
  8. public float ordernum;
  9. public float ordmon;
  10. public double acfee;
  11. public double tolmon;
  12. public void getdeunt() {
  13. float sum=0;
  14. for(int i=0;i<this.pdls.size();i++) {
  15. sum +=this.pdls.get(i).price *this.pdls.get(i).num;
  16.  
  17. }
  18. this.ordmon = sum;
  19.  
  20. }
  21. public void setmon() {
  22. double tmp=0;
  23. if(this.ordmon>=1000 & this.ordmon<2000) {
  24. tmp=0.98;
  25. }
  26. else if(this.ordmon>=2000 & this.ordmon <3000) {
  27. tmp=0.95;
  28.  
  29. }
  30. else if(this.ordmon>=3000) {
  31. tmp=0.90;
  32. }
  33. //user level
  34. double acfee=0;
  35. if(this.user.level.equals("gold")) {
  36. acfee=0.98*tmp;
  37. }
  38. else if(this.user.level.equals("dia")) {
  39. acfee = 0.96*tmp;
  40.  
  41. }
  42. else if(this.user.level.equals("super")) {
  43. acfee=0.92*tmp;
  44.  
  45. }
  46. this.acfee=acfee;
  47.  
  48. }
  49. public void acmon() {
  50. double tmon;
  51. tmon =this.acfee * this.ordmon;
  52. this.tolmon=tmon;
  53.  
  54. }
  55. }
  1. package ord;
  2.  
  3. public class product {
  4. String orderid;
  5. String pron;
  6. double price;
  7. Integer num;
  8.  
  9. public product(String orderid,String name,double price,int num) {
  10. this.orderid =orderid;
  11. this.pron = name;
  12. this.price =price;
  13. this.num =num;
  14. }
  15. }
  1. package ord;
  2.  
  3. public class user {
  4. String usid;
  5. String usna;
  6. String level;
  7. public user(String usid,String usna,String level) {
  8. this.usid =usid;
  9. this.usna=usna;
  10. this.level=level;
  11.  
  12. }
  13.  
  14. }
  1. package ord;
  2. import java.util.ArrayList;
  3.  
  4. public class ordertt {
  5.  
  6. public static void main(String []args) {
  7. order o1 =new order();
  8. user user=new user("a","li","gold");
  9. o1.user =user;
  10.  
  11. ArrayList<product> pdfs = new ArrayList<product>();
  12. product p1 = new product("1","ab",11.1,200);
  13. product p2 = new product("2","abb",10,200);
  14. pdfs.add(p1);
  15. pdfs.add(p2);
  16. o1.pdls = pdfs;
  17. o1.getdeunt();
  18. o1.setmon();
  19. o1.acmon();
  20. System.out.print(o1.tolmon);
  21.  
  22. }
  23.  
  24. }

java订单金额分级计算的更多相关文章

  1. 货币金额的计算 - Java中的BigDecimal

    在<Effective Java>这本书中也提到这个原则,float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal.,而且使 ...

  2. Java工具类之——BigDecimal运算封装(包含金额的计算方式)

    日常对于金额计算,应该都是用的BigDecimal,  可是苦于没有好的工具类方法,现在贡献一个我正在用的对于数字计算的工具类,项目中就是用的这个,简单粗暴好用,话不多说,代码奉上(该工具类需要引入g ...

  3. Java订单功能模块设计与实现

    在商城项目中,之前我们介绍了购物车功能模块的实现,商品加入到购物车之后,就是到购物车结算,然后显示购物车的商品列表,点击去结算,然后到了未提交前的订单列表, 点击提交订单后,生成此订单,返回订单的订单 ...

  4. [ JAVA编程 ] double类型计算精度丢失问题及解决方法

    前言 如果你在测试金融相关产品,请务必覆盖交易金额为小数的场景.特别是使用Java语言的初级开发. Java基本实例 先来看Java中double类型数值加.减.乘.除计算式实例: public cl ...

  5. TVA金额的计算,以及应该放在那里

    标记TTC价格的货物,有以下内容:TTC原价(自动提取),折扣(输入),折扣之后的减价(代金券,或者再次减价),最终TTC单价(自动计算).税率(输入),HT单价(自动计算),单价的税费(也可能不需要 ...

  6. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  7. 金额的计算BigDecimal类

    金额的计算BigDecimal类 double d = 9.84; double d2 = 1.22; //注意需要使用BigDecimal(String val)构造方法 BigDecimal bi ...

  8. 简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行

    [TOC] 简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行 程序源码 import java.io.IOException; import java.util. ...

  9. Java订单号生成,唯一订单号(日均千万级别不重复)

    Java订单号生成,唯一订单号 相信大家都可以搜索到很多的订单的生成方式,不懂的直接百度.. 1.订单号需要具备以下几个特点. 1.1 全站唯一性. 1.2 最好可读性. 1.3 随机性,不能重复,同 ...

随机推荐

  1. linux下安装libcurl及开源库的一般安装步骤

    前言 总有人说:要多看源代码!那么源代码去哪找呢?找到了又该怎么安装呢?本票博客不介绍如何使用和学习,只要讲获取和安装,以后会将curl和libevent的使用和学习. 一.开源库常用安装步骤 1.开 ...

  2. 前端笔记之服务器&Ajax(下)数据请求&解决跨域&三级联动&session&堆栈

    一.请求后端的JSON数据 JSON是前后端通信的交互格式,JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. JSON是互联网各个后台与 ...

  3. logistic逻辑回归公式推导及R语言实现

    Logistic逻辑回归 Logistic逻辑回归模型 线性回归模型简单,对于一些线性可分的场景还是简单易用的.Logistic逻辑回归也可以看成线性回归的变种,虽然名字带回归二字但实际上他主要用来二 ...

  4. cocos creator主程入门教程(八)—— 代码结构

    五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑.本系列文章以TypeScript为介绍语言. 这一篇简单介绍下代码结构,清晰的代码结构更有利于团队对项目的理解和维护. 1.前面我们介绍了一系列基础功 ...

  5. 服务器linux centos 7.4 搭建ftp服务器

    此操作是在腾讯云服务器linux centos 7.4 完成搭建ftp服务器 vsftpd 的: 安装 vsftpd $ yum install vsftpd -y 启动 $ service vsft ...

  6. 我的python渗透测试工具箱之自制netcat

    此工具的目的是实现在目标主机上的文件传输,控制命令行的功能,主要逻辑依靠python的subprocess模块.`sys`模块和`getopt`模块. 知识准备 studin和studut studi ...

  7. .Net移动开发平台 ,基于VisualStudio的可视化开发——Smobiler平台入门教程

    通过以下步骤,可以简单了解到如何下载Smobiler Designer(设计器).Client(客户端),以及如何通过设计器进行开发和调试移动应用,并在服务端部署.Cloud打包.访问您所开发的移动应 ...

  8. Oracle的坑,你是否踩过?----安装篇

    作为一个职场的新人,之前都是接触Sql server 数据库比较多,Oracle这方面基本没有接触过,然后这次公司刚好有个项目用到了Oracle数据库,然后就打算学习一下这方面的知识.然后昨天安装Or ...

  9. 弹性布局--flex方向

    flex方向 flex方向由flex-direction特性决定,用于定义弹性布局模式.flex-direction共有4种模式:从左向右.从右向左.从上往下.从下往上. 主轴 主轴的起点与终点定义了 ...

  10. Java:配置环境(Mac)——MySQL

    1.官网下载 2.双击开始安装,一直下一步 用旧版的密码加密 自己写个密码,最少8位 3.测试 打开系统偏好设置 4.mysql需要在系统环境变量里 1)在终端输入mysql,没有指令说明.此时就还不 ...