//###float function float_math(string)
function float_math(val)
{
var math_flag = new Array();
var make_val="";
for(var i=0; i<val.length; i++)
{
var temp_str=val.charAt(i);
if(temp_str.search(/[\-||\+||\*||\/]/g)!=-1)
{
math_flag.push(temp_str);
make_val=make_val.concat("^");
}
else make_val=make_val.concat(temp_str);
}
var temp_arr=make_val.split("^");
for(var i=0;i<math_flag.length;i++)
{
var input_val=new Array();
if(!result) var result=temp_arr[i];
input_val.push(result.toString());
input_val.push(temp_arr[i+1].toString());
result=float_math_query(input_val, math_flag[i]);
}
return parseFloat(result);
}
function float_math_query(val_arr, math_flag)
{
var val_arr_length=val_arr.length;
var point_length = new Array();
var point_max_length=-1;
for(var j=0; j<val_arr_length;j++)
{
var val=val_arr[j];
var point_temp=-1;
var point=false;
for(var i=0; i<val.length; i++)
{
var temp=val.charAt(i);
if(temp.search(/[\\.]/g)!=-1) point=true;
if(point==true) point_temp++;
}
if(point_max_length < point_temp) point_max_length=point_temp;
val_arr[j]=val_arr[j].replace(/[\\.]/g,"");
if(val.length>1) val_arr[j]=val_arr[j].replace(/^[0]/g,"");
point_length.push(point_temp);
}
var in_zero="";
for(var i=0;i<point_max_length;i++) in_zero=in_zero.concat("0");
var return_zero=in_zero;
var return_math;
for(var i=0;i<val_arr_length;i++)
{
var temp_zero;
if(point_length[i]!=-1) temp_zero=in_zero.substring(point_length[i]);
else temp_zero=in_zero;
if(i==0) return_math=parseInt(val_arr[i].concat(temp_zero));
else
{
if(math_flag=="+") return_math=return_math+parseInt(val_arr[i].concat(temp_zero));
else if(math_flag=="-") return_math=return_math-parseInt(val_arr[i].concat(temp_zero));
else if(math_flag=="*")
{
return_math=return_math*parseInt(val_arr[i].concat(temp_zero));
return_zero=return_zero.concat(in_zero);
}
else if(math_flag=="/")
{
return_math=return_math/parseInt(val_arr[i].concat(temp_zero));
var flag="";
}
}
}
if(!flag) return_math=return_math/parseInt("1"+return_zero);
return parseFloat(return_math);
}
'CGI (PHP, ... )' 카테고리의 다른 글
PHP에서 xml 사용하기 (0) | 2010.05.04 |
---|---|
폼 내용 유지와 관련하여 session_cache_limiter() 에 대해 잘못 알려진 내용 (0) | 2009.03.12 |
다중 배열 정렬하기 (0) | 2008.09.26 |
배열의 열과 행을 바꿔주는 함수 (0) | 2008.09.26 |
2개의 배열을 합친후, 중복 제거하기 (0) | 2008.09.26 |