Java 百分數轉換成double類型的數值

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文檔提供了對數值格式化的類NumberFormatNumberFormat 是所有數值格式的抽象基類。此類提供格式化和解析數值的接口。
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);//打印數值
//你不必重複造輪子。

附上百度知道的鏈接

https://zhidao.baidu.com/question/492889383.html

如果覺得對您有幫助,請不要吝嗇您的

發佈了26 篇原創文章 · 獲贊 45 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章