package coreJava;
import java.math.BigDecimal;
import java.text.NumberFormat;
/**
* java强(为每一个变量声明一种类型,int i=0)类型语言,js,groovy弱类型语言(var str="js"; def str="groovy");
* java 8种 基本数据类型(4种整型((byte,short,int, long));2种浮点;1种char;1种boolean)
*/
public class Chapter3 {
public static void main(String[] args) {
// byte 和short 用于特殊场合
// java语言,int类型与运行java代码的机器无关;而C/C++中,int表示的整型与目标机器相关
// char类型与unicode编码 http://blog.sina.com.cn/s/blog_44c1e6da0100bhqc.html
// 浮点类型:float 单精度(有效位数为6-7位;4字节);double双精度(有效位数为15位;8字节)
System.out.println((float)1/3);
System.out.println((double)1/3);
System.out.println(1/3f);
System.out.println(1.0/3.0); // 没有后缀f的浮点数默认为double
System.out.println(1/3d);
System.out.println(1/3);
// 特殊(溢出或出错)浮点数:正无穷大Double.POSITIVE_INFINITY,负无穷大Double.NEGITIVE_INFINITY,Double.isNaN
System.out.println("is NaN? " + (Double.isNaN('a')? true:false));
//浮点数数值不适合用于禁止出现舍入误差的金融计算中,无舍入误差采用BigDecimal
//为什么"减不尽"? http://www.cnblogs.com/yewsky/articles/1864934.html
System.out.println(2.0 - 1.1); // 浮点数采用二进制系统,无法精确1/10; 10进制系统无法精确表示1/3
System.out.println(new BigDecimal(2.0).subtract(new BigDecimal(1.1)).doubleValue()); // 0.8999999999999999
//注意需要使用BigDecimal(String val)构造方法
System.out.println(new BigDecimal(Double.toString(2.0)).subtract(new BigDecimal(Double.toString(1.1)))); // 0.9
// 数字格式化 NumberFormat.getCurrencyInstance();
double format = 12343171.6;
//获取常规数值格式
NumberFormat number = NumberFormat.getNumberInstance();
String str = number.format(format);//12,343,171.6
System.out.println(str);
//获取整数数值格式
NumberFormat integer = NumberFormat.getIntegerInstance();
str = integer.format(format);//如果带小数会四舍五入到整数12,343,172
System.out.println(str);
//获取货币数值格式
NumberFormat currency = NumberFormat.getCurrencyInstance();
currency.setMinimumFractionDigits(2);//设置数的小数部分所允许的最小位数(如果不足后面补0)
currency.setMaximumFractionDigits(4);//设置数的小数部分所允许的最大位数(如果超过会四舍五入)
str = currency.format(format);//¥12,343,171.60
System.out.println(str);
//获取显示百分比的格式
NumberFormat percent = NumberFormat.getPercentInstance();
percent.setMinimumFractionDigits(2);//设置数的小数部分所允许的最小位数(如果不足后面补0)
percent.setMaximumFractionDigits(3);//设置数的小数部分所允许的最大位数(如果超过会四舍五入)
str = percent.format(format);//1,234,317,160.00%
System.out.println(str);
}
}
java学习笔记8_数据类型
最新推荐文章于 2024-05-13 21:50:21 发布