精確小数演算の処理
精確小数演算の処理
package yfTest.shixi;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import org.junit.Test;
public class BigDecimalTest {
/**
* @param args
*/
@Test
public void bigDecimalTest() {
float a = 1.10540001f;
float b = 2.2f;
BigDecimalTest t = new BigDecimalTest();
System.out.println(t.add(a,b));
System.out.println(t.sub(a,b));
System.out.println(t.mul(a,b));
System.out.println(t.div(a,b));
System.out.println(t.round(a)); //1.11
// (4 )
DecimalFormat dcmFmt = new DecimalFormat("0.00");
double db = 12333.007;
System.out.println(dcmFmt.format(db));//12333.01
}
public float add(float v1,float v2){//
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.add(b2).floatValue();
}
public float sub(float v1,float v2){//
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.subtract(b2).floatValue();
}
public float mul(float v1,float v2){//
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.multiply(b2).floatValue();
}
public float div(float v1,float v2){//
BigDecimal b1 = new BigDecimal(Float.toString(v1));
BigDecimal b2 = new BigDecimal(Float.toString(v2));
return b1.divide(b2,3,BigDecimal.ROUND_HALF_UP).floatValue();
}
public float round(float v){// 2
BigDecimal b = new BigDecimal(Float.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one,2,BigDecimal.ROUND_HALF_UP).floatValue();
}
// reflect !( )
public static void main(String args[]) {
new BigDecimalTest().doit();
}
public void doit() {
System.out.println(new Exception().getStackTrace()[0]);
}
}