Java百分数转换成数值类型

今天在项目中遇到需要将百分数转换成double类型的问题,因为double不支持带百分号的数值.
在查阅资料后,发现了一种可行方案:

import java.text.NumberFormat;//引入数值处理的包
import java.text.ParseException;//引入可能出现的异常包

String str="34.2%";//字符串类型的百分数
NumberFormat nf=NumberFormat.getPercentInstance();
Number m=nf.parse(str);//将百分数转换成Number类型
/*关于Number类型介绍 可以参考http://c.biancheng.net/cpp/html/1737.html
但是鉴于排版 更推荐http://blog.csdn.net/peng_hong_fu/article/details/52597278
*/
double dd=m.doubleValue();//通过调用nubmer类默认方法直接转换成double

关于NumberFormat和ParseException的介绍 引用了百度知道的回答:

Java API文档提供了对数值格式化的类NumberFormat。
NumberFormat 是所有数值格式的抽象基类。此类提供格式化和解析数值的接口。
NumberFormat 还提供了一些方法来确定哪些语言环境具有数值格式,以及它们的名称是什么。
NumberFormat 可用于格式化和解析任何语言环境的数值。使代码能够完全独立于小数点、千位分隔符甚至所用特定小数位数的语言环境约定,并与数值格式是否为偶小数无关

以下是回答中的例子 我做了一个排版

import java.text.NumberFormat;//引入数值处理的包
import java.text.ParseException;//引入可能出现的异常包
String str="34.2%";//字符串类型的百分数
NumberFormat nf=NumberFormat.getPercentInstance();//NumberFormat是一个工厂,可以直接getXXX创建,而getPercentInstance() 是返回当前默认语言环境的百分比格式。
Number m=nf.parse(str);//提供了带有 ParsePosition 和 FieldPosition 的 parse 和 format 方法的形式,parse(xx)表示解析给定字符串开头的文本,生成一个数值。逐步地解析字符串的各部分
System.out.println(m);//打印数值
//你不必重复造轮子。

如果觉得对您有帮助,请不要吝啬您的