1、java基本数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
Java定义了8个简单的数据类型:字节型(byte),短整型(short),整型(int),长整型(long),字符型(char),浮点型(float),双精度型(double),布尔型(boolean)
2、默认值
除了boolean默认false,char–〉/u0000,其他的都为0
3、常量
十六进制整型常量:以十六进制表示时,需以0x或0X开头,如0xff,0X9A。
八进制整型常量:八进制必须以0开头,如0123,034。
长整型:长整型必须以L作结尾,如9L,342L。
浮点数常量:由于小数常量的默认类型是double型,所以float类型的后面一定要加f(F)。同样带小数的变量默认为double类型
float和double的区别?
两者都是浮点型
1.float为单精度实数,double为双精度实数
2.在一般计算机中,为float类型的变量分配4个字节的存储单元,为double类型变量分配8个字节的存储单元
3.float数值范围约在 -10e38~10e38,并提供7位有效数字位,绝对值小于10e38的数被处理成零值
4.double数值范围约在-10e308~10e308,并提供15~16位有效数字,绝对值小于10e308的数被处理成零值
5.float类型初始化方法:float score=78.5f; float r =3.777f;
一般金融保存金额,都是用BigDecimal,精度高,且数据库读写也方便。
float f=1/3 取到的值是0.0
因为1/3=0.33333……,强制转化成int后结果为0,再将int的0赋值给float类型的f,强制转化后就是0.0,所以不是你想要的结果0.3333……
所以我们应该这么做
float f = (float) 1 / 3 或 f = 1 / (float) 3
或者
float f = 1.0 / 3 或 f = 1 / 3.0 或 f = 1.0 / 3.0注意:因为小数点是可浮动的,一般用有效数字来表示其精度范围。
有效数字指的是从数值的左边第一个不为0的数字起,一直数到这个数字结束,中间的数字叫这个值的有效数字。
如:
30.4005 【6个有效数字,是:3、0、4、0、0、5】
0.00028010【5个有效数字,是:2、8、0、1、0】
0.600 【三个有效数字,是6、0、0】精确到千分位
Double float 保留小数点后N位最好用的两个方法 ,四舍五入
1.double dou = 231.12678 ;
String str = String.format(” %.2f “,dou); //这里2的取值为0~n 代表要保留的小数位数,0表示不保留
2.double dou = 231.12678 ;
BigDecimal bigDecimal = new BigDecimal (dou);
double dou2 = bigDecimal.setScale (2,BigDecimal.ROUND_HALF_UP).doubleValue(); //这句使用于double 2表示保留多少位小数点,这个方法最少也要保留一位小数
3、float fals = 2.13512;
float fals2 = bigDecimal.setScale (2,BigDecimal.ROUND_HALF_UP).floatValue(); //这句使用于float
4、float a = 123.2384f;
float b = (float)(Math.round(a*10*N))/(10*N);
方法举例
public void toFloat() {
// TODO 自动生成的方法存根
int a=7;
int b=6;
//数学中7除以6等于1.1666666无限小数,这里四舍五入
////构造方法的字符格式这里如果小数不足2位,会以0补足.
DecimalFormat df=new DecimalFormat("0.00");
System.out.println(df.format((float)a/b));
System.out.println(df.format(a/(float)b));
System.out.println(df.format((float)a/(float)b));
System.out.println(df.format((float)(a/b)));
}
1.17
1.17
1.17
1.00
JAVA去除小数点后不需要的0
String s = "111.01100";
if(s.indexOf(".") > 0){
//正则表达
s = s.replaceAll("0+?$", "");//去掉后面无用的零
s = s.replaceAll("[.]$", "");//如小数点后面全是零则去掉小数点
}
System.out.println(s);
double大数值时,使其正常显示 而不是显示成科学记数法
Double d = new Double("1234567890.12");
System.out.println("d:="+d);//d:1.23456789012E9
java.text.NumberFormat nf = java.text.NumberFormat.getInstance();
nf.setGroupingUsed(false);
System.out.println("d:="+nf.format(d));//nf.format(d):1234567890.12
参考文档
正则
https://bbs.csdn.net/topics/390160242
https://zhidao.baidu.com/question/581570451.html
JAVA去除小数点后不需要的0
https://blog.csdn.net/zz210891470/article/details/51208763
BigDecimal类(高精度小数)
https://www.cnblogs.com/Dumblidor/p/5410249.html
java中的开方Math.sqrt(n)函数和平方{a的b次方Math.pow(a, b)}
https://blog.csdn.net/u010735684/article/details/47002109
1,**重点内容**sqrt是开方:
比如math.sqrt(9)结果为3 意思是求9的开方根,数学上称为根号2下的9
2.**重点内容**pow(a,b)
Math.pow(27, 3)意思是求27的三次方 就是27*27*27的意思
重点内容假如你想求开三次方,或者四次方 可以借助pow方法
例如:Math.pow(27, 1/3)
结果为3 就是对27的1/3次方 就是根号3下的27