format.format(abc);//返回的本来就是String
public Number parse(String text,
ParsePosition pos)分析字符串中的文本,以生成一个 Number。
该方法试图分析从 pos所给定的索引处开始的文本。如果分析成功,则将 pos的索引更新为所用最后一个字符后面的索引(不一定分析直到字符串末尾的所有字符),并返回分析后的数。可以使用更新后的 pos指示下一次调用此方法的开始点。如果发生错误,则不更改 pos的索引,并将 pos的错误索引设置为发生错误处的字符索引,并且返回 null。
返回的子类取决于 isParseBigDecimal()的值以及所分析的字符串。
如果 isParseBigDecimal()为 false(默认值),则以 Long对象返回多数整数值,而不管其写入方式如何:"17"和"17.000"都分析成 Long(17)。不符合 Long的值则以 Double的形式返回。这包括有小数部分的值、无穷大的值、NaN和值-0.0。DecimalFormat不根据源字符串中是否有小数分隔符来决定返回 Double还是 Long值。这样做会无法准确地分析导致某个 double尾数(如"-9,223,372,036,854,775,808.00")溢出的整数。
调用方可能使用 Number的方法 doubleValue、longValue等来获得所需类型的数值。
如果 isParseBigDecimal()为 true,则以 BigDecimal对象的形式返回值。这些值是由 BigDecimal.BigDecimal(String)以和语言环境无关的格式为相应字符串所构造的那些值。特殊的情况是正负无穷大和 NaN值,它们以 Double实例的形式返回,其中保存了相应的 Double常量值。
DecimalFormat分析所有由 Character.digit()所定义的、表示小数数字的 Unicode字符。另外,DecimalFormat也将 DecimalFormatSymbols对象中所定义的、从已本地化的阿拉伯数字 0开始的 10个连续字符识别为阿拉伯数字。
pos-具有索引和上述错误索引信息的 ParsePosition对象。
分析得到的值,如果分析失败,则为 null
将数字进行格式化,比如取2位小数,这是最常见的。Java提供 DecimalFormat类,帮你用最快的速度将数字格式化需要的样子。下面是一个例子:
importjava.text.DecimalFormat;
publicstaticvoidmain(String[]args){
System.out.println(newDecimalFormat("0").format(pi));//3
System.out.println(newDecimalFormat("0.00").format(pi));//3.14
//取两位整数和三位小数,整数不足部分以0填补。
System.out.println(new DecimalFormat("00.000").format(pi));// 03.142
System.out.println(newDecimalFormat("#").format(pi));//3
//以百分比方式计数,并取两位小数
System.out.println(new DecimalFormat("#.##%").format(pi));//314.16%
//显示为科学计数法,并取五位小数
System.out.println(newDecimalFormat("#.#####E0").format(c));//2.99792E8
//显示为两位整数的科学计数法,并取四位小数
System.out.println(newDecimalFormat("00.####E0").format(c));//29.9792E7
System.out.println(newDecimalFormat(",###").format(c));//299,792,458
System.out.println(newDecimalFormat("光速大小为每秒,###米。").format(c));
DecimalFormat类主要靠#和 0两种占位符号来指定数字长度。0表示如果位数不足则以 0填充,#表示只要有可能就把数字拉上这个位置。上面的例子包含了差不多所有的基本用法.
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.7z3g.cn/showinfo-1-5756-0.html