/* ------------------------- Labo_Util 1998/10/29 by Nken ------------------------- */ public class Labo_Util{ // 切り捨て関数 int Trunc(double x) { int xm; if (x>=(int)(Math.round(x))) {xm=(int)(Math.round(x));} else {xm=(int)(Math.round(x)-1);} return xm; } // 指数をゲットする関数 int power(double x) { x=Math.abs(x); double y=x; int n=0; if (x==0){n=0;} if (x>=1) { while(y>=1) { y=y*0.1; n=n+1; }; n=n-1; } if ((x>0)&&(x<1)) { while(y<1) { y=y*10; n=n-1; } } return n; } // まるめの関数 double round(double x) { double y=Math.round(x/Math.pow(10,power(x))); y=y*Math.pow(10,power(x)); return y; } // まるめの関数2 double round2(double x, int n) { int k=power(x); double y=x/Math.pow(10,power(x)); y=y*Math.pow(10,n-1); y=Math.round(y)*1.0; y=y/Math.pow(10,n-1); y=y*Math.pow(10,k); return y; } // String のコピー String stcopy(String s) { String ss=""; int n=s.length(); int i=0; while((i<=n-1) && (i<=3)) { ss=ss+s.charAt(i); i=i+1; } if (ss.length()<4) { for (int j=ss.length(); j<4; j++) { ss=ss+"0"; } } return ss; } // グラフィック座標変換 int mapping_x(double x, double x1, double x2, int xx1, int xx2) { int xx=(int)( (double)(x-x1)/(double)(x2-x1)*(xx2-xx1)+xx1); return xx; } int mapping_y(double y, double y1, double y2, int yy1, int yy2) { int yy=(int)(yy2-(double)(y-y1)/(double)(y2-y1)*(yy2-yy1)); return yy; } // Stringオブジェクトを変数doubleに変換する手続き double String2double(String instr) { String s_tmp=""; for (int i=0; i<=instr.length()-1; i++) { if (instr.charAt(i) != ' '){s_tmp=s_tmp+instr.charAt(i);}; } Double Object_Of_Double = Double.valueOf(instr); double x = Object_Of_Double.doubleValue(); return x; } // 数値変数を任意の桁数の文字列(指数表示)に変換する手続き String double2String(double x, int n) { String s=""; if (x!=0){ s=String.valueOf(x/Math.pow(10,power(x))); } else{ s=String.valueOf(x); } String m=""; int j=0; int i=0; while (j<=n-1){ if (i<=s.length()-1){ if (s.charAt(i)!='.'){ if (s.charAt(i)!='-'){j=j+1;} m=m+s.charAt(i); if (j==1){m=m+'.';} } } else{ j=j+1; m=m+'0'; } i=i+1; } if (x!=0){ m=m+'e'+String.valueOf(power(x)); } else{ m=m+"e0"; } return m; } // 角度計算 double kakudo(double x, double y) { double angle; if (x<0) { angle=Math.PI+Math.atan(y/x); } else { angle=Math.atan(y/x); if (y<0) { angle=angle+2*Math.PI; } } return angle; } }