?? base_rate.java
字號(hào):
package com.strongit.bi.mbs.model;
/**
* <p>定基增長(zhǎng)率模型</p>
* <p>Description:定基增長(zhǎng)率模型的算法(發(fā)展性分析)</p>
*
*/
import java.math.BigDecimal;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class Base_Rate {
public String stat(String xmlString)
{
Document requestDoc = null;
try {
requestDoc = DocumentHelper.parseText(xmlString);
} catch (DocumentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
List<Element> dataList=requestDoc.selectNodes("/Submodel/Data/RowData/ColumnData");
double[] originData=new double[dataList.size()];
//獲取原始數(shù)據(jù)
for(int i=0;i<dataList.size();i++)
{
if(dataList.get(i).getText()!=null&&!"".equals(dataList.get(i).getText()))
{
originData[i]=Double.valueOf(dataList.get(i).getText()).doubleValue();
}
}
//獲取時(shí)間段長(zhǎng)度
Element timespanElement=(Element)requestDoc.selectSingleNode("/Submodel/Common/Timespan");
int timespan=0;
if(timespanElement.getText()!=null&&!"".equals(timespanElement.getText()))
timespan=Integer.valueOf(timespanElement.getText()).intValue();
//獲取預(yù)測(cè)時(shí)間長(zhǎng)度
Element fcstTimespanElement=(Element)requestDoc.selectSingleNode("/Submodel/Common/FcstTimespan");
int fcstTimespan=0;
if(fcstTimespanElement.getText()!=null&&!"".equals(fcstTimespanElement.getText()))
fcstTimespan=Integer.valueOf(fcstTimespanElement.getText()).intValue();
double[] baserate_array = new double[timespan + fcstTimespan];
for (int m = 1; m < timespan; m++) {
baserate_array[0] = 0;
if(originData[0]!=0)
{
BigDecimal c = new BigDecimal( ( (originData[m] -
originData[0]) /
originData[0]) * 100); //定基求差值比率
baserate_array[m] = c.setScale(2, BigDecimal.ROUND_HALF_UP).
doubleValue();
}
}
// 添加應(yīng)用該模型后的時(shí)序結(jié)果
Element resultDatas=requestDoc.getRootElement().element("ResultDatas");
Element timeResultData=resultDatas.addElement("ResultData").addAttribute("view","TimeSeries");
Element timeResultRow=timeResultData.addElement("RowData").addAttribute("label", "定基增長(zhǎng)率");
for(int i=0;i<baserate_array.length;i++)
{
timeResultRow.addElement("ColumnData").setText(String.valueOf(baserate_array[i]));
}
return requestDoc.asXML();
}
// public double[] stat(double[] origin_data, String[] parameter_array,
// int amount_parameter, int timespan, int fcst_timespan, double[][] variable_index) {
//if (String.valueOf(timespan) == null || timespan < 0) {
//timespan = 1;
//}
//if (String.valueOf(fcst_timespan) == null || fcst_timespan < 0) {
//fcst_timespan = 0;
//}
//double[] baserate_array = new double[timespan + fcst_timespan];
//
//try{
//for (int m = 1; m < timespan; m++) {
//baserate_array[0] = 0;
//if(origin_data[0]!=0)
//{
//BigDecimal c = new BigDecimal( ( (origin_data[m] -
// origin_data[0]) /
// origin_data[0]) * 100); //定基求差值比率
//
//
//baserate_array[m] = c.setScale(2, BigDecimal.ROUND_HALF_UP).
// doubleValue();
//}
//}
//}
//catch (Exception he) {
//he.printStackTrace();
//}
//
//return baserate_array;
//}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -