数据类型

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值