package com.lwf.test; import java.math.BigDecimal; public class Test { public static void main(String[] args) { // System.out.println(caculateCB("10.8","1800","6.42","3000")); // System.out.println(caculateCT("10.8","1800","6.42","7")); caculateYK("16.572","6500","19.2"); caculateMBJ("16.572","5000","30"); } /** * 预计涨幅-计算目标价 * @param v1 原始买入价 * @param c1 原始买入数 * @param zf 涨幅如涨20%,只需要输入20 */ public static void caculateMBJ(String v1,String c1 ,String zf1){ BigDecimal vs1 = new BigDecimal(v1); BigDecimal cs1 = new BigDecimal(c1); BigDecimal zf = new BigDecimal(zf1); BigDecimal vs2 = vs1.add((vs1.multiply(zf)).divide(new BigDecimal("100"))); BigDecimal yjz = vs1.multiply(cs1) ; BigDecimal xjz = vs2.multiply(cs1) ; BigDecimal yk = xjz.subtract(yjz); System.out.println("原始总价值=" + yjz + ",目标总价值=" + xjz + ",盈亏=" + yk + ",涨幅="+zf+"%" + ",原价=" + vs1 + ",目标价="+ vs2 ); } /** * 计算涨幅、盈亏 * @param v1 原始买入价 * @param c1 原始买入数 * @param v2 现价 */ public static void caculateYK(String v1,String c1 ,String v2){ BigDecimal vs1 = new BigDecimal(v1); BigDecimal vs2 = new BigDecimal(v2); BigDecimal cs1 = new BigDecimal(c1); BigDecimal yjz = vs1.multiply(cs1) ; BigDecimal xjz = vs2.multiply(cs1) ; BigDecimal yk = xjz.subtract(yjz); BigDecimal zf = ((vs2.subtract(vs1)).divide(vs1, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal("100")); System.out.println("原始总价值=" + yjz + ",现在总价值=" + xjz + ",盈亏=" + yk + ",涨幅="+zf+"%" + ",原价=" + vs1 + ",现价="+ vs2); } /** * 计算补仓后的成本价 * @param v1 原始买入价 * @param c1 原始买入数 * @param v2 补仓价即现价 * @param c2 补仓数 * @return 补仓后成本价 */ public static String caculateCB(String v1,String c1 ,String v2, String c2){ BigDecimal vs1 = new BigDecimal(v1); BigDecimal vs2 = new BigDecimal(v2); BigDecimal cs1 = new BigDecimal(c1); BigDecimal cs2 = new BigDecimal(c2); BigDecimal retVal = ((vs1.multiply(cs1)).add(vs2.multiply(cs2))).divide(cs1.add(cs2), BigDecimal.ROUND_HALF_UP); BigDecimal money = cs2.multiply(vs2); System.out.println("原始购入:" + c1 + "股,原成本价:"+ v1 + ",现价:" + v2 + ",购入:" + c2 + "股" + ",补仓后成本价降为:" + retVal.toString() + ",需要金额:" + money); return retVal.toString() ; } /** * 计算要打到某一成本价需要补多少股 * @param v1 买入价 * @param c1 原始买入数 * @param v2 补仓价即现价 * @param v3 目标成本价即完成补仓后的成本价 * @return 需要补仓的股数 */ public static String caculateCT(String v1,String c1,String v2, String v3){ BigDecimal vs1 = new BigDecimal(v1); BigDecimal vs2 = new BigDecimal(v2); BigDecimal vs3 = new BigDecimal(v3); BigDecimal cs1 = new BigDecimal(c1); int cv = vs3.compareTo(vs2); if(cv <= 0){ return "目标成本价跟现价一致或低于现价!"; } int cv1 = vs1.compareTo(vs3); if(cv <=0){ return "目标成本价跟原价一致或高于原价!"; } Integer retVal =((vs1.subtract(vs3)).multiply(cs1)).divide((vs3.subtract(vs2)),BigDecimal.ROUND_HALF_UP).intValue(); String val = String.valueOf((retVal*100/10000)*100); BigDecimal money = vs2.multiply(new BigDecimal(val)); System.out.println("原始购入:" + c1 + "股,原成本价:"+ v1 + ",现价:" + v2 + ",想把成本价降为:" + v3 + ",需要购入:" + val + "股" + ",需要金额:" + money ); return val; } }
相关推荐
PCB成本核算及价格.pdf
工业企业一套成本核算表格,产成品成本计算,费用分配
国际贸易商品成本核算与价格确定专训.pptx
PCB成本核算及价格.docx
海辰国际快递价格查询软件是一款免安装的自动计算渠道成本价格的绿色软件,以往公司的业务员给客户报价都要打开excel里的各个渠道价格表,然后手工计算出报价,这样就降低了工作效率。 海辰国际快递价格查询软件就...
很多年前的VB6代码程序,需要从晶圆厂的Promis系统导出工序数据才能够计算成本。当初是为了方便自己的工作而开发的。目前能不能运行偶也搞不清了。仅供VB6学习者参考。 这套系统,可以核算晶圆厂recipe成本核算(要...
在一个或多个会计期间保持不变,为库存移动和成本分析建立统一的基准价格,移动平均价是取得价值的加权平均,每次入库时都重新计算新的移动平均价,可以即时反应库存价值的变动,但难以建立可靠的成本分析体系,SAP...
成本价分布主图源码通达信指标公式源码.doc
股票补仓成本计算器可自动计算补仓后的成本价。
成本中心分割及作业价格计算
某医院第一季度全成本核算报告.doc
某公司成本核算汇总资料某地产.docx
某汽车改装厂成本核算管理制度汇编.doc
成本核算,,成本核算.doc成本核算.doc成本核算.doc
详细描述了制造业生产过程中投入成本和实际产生的差异,并对此进行分析
股票成本价和盈亏金额计算方法.doc
首先必须明白精确的成本核算是一种建立在进销存、生产和财务都准确的基础之上的企业活动,任何一个不准确的进销存、生产和财务信息都可能造成成本的计算不准确,但有一点是必须做到的,那就是财务的账面价值必须和...
一、 成本核算中心:成本费用的归集核算单元 二、 核算对象:即产品、劳务、商品等 三、 成本项目:构成成本费用的要素,如:水、电、原材料等。 四、 成本构成:组成成本中心对象的费用项目。 五、 归集关系:提取...