元转换为分,分转换为元

来源:互联网 发布:java代码管理工具svn 编辑:程序博客网 时间:2024/05/02 22:27
import java.math.BigDecimal;import java.text.NumberFormat;import java.text.ParseException;import java.util.regex.Matcher;import java.util.regex.Pattern;public class FenAndYuan {public static void main(String[] args) {System.out.println(FenAndYuan.fromFenToYuan("2012"));System.out.println(FenAndYuan.fromFenToYuan("201a"));System.out.println(FenAndYuan.fromYuanToFen("20.12"));System.out.println(FenAndYuan.fromYuanToFen("20.12a"));}/** * 分转换为元. *  * @param fen *            分 * @return 元 */public static String fromFenToYuan(final String fen) {String yuan = "";final int MULTIPLIER = 100;Pattern pattern = Pattern.compile("^[1-9][0-9]*{1}");Matcher matcher = pattern.matcher(fen);if (matcher.matches()) {yuan = new BigDecimal(fen).divide(new BigDecimal(MULTIPLIER)).setScale(2).toString();} else {System.out.println("参数格式不正确!");}return yuan;}/** * 元转换为分. *  * @param yuan *            元 * @return 分 */public static String fromYuanToFen(final String yuan) {String fen = "";Pattern pattern = Pattern.compile("^[0-9]+(.[0-9]{2})?{1}");Matcher matcher = pattern.matcher(yuan);if (matcher.matches()) {try {NumberFormat format = NumberFormat.getInstance();Number number = format.parse(yuan);double temp = number.doubleValue() * 100.0;// 默认情况下GroupingUsed属性为true 不设置为false时,输出结果为2,012format.setGroupingUsed(false);// 设置返回数的小数部分所允许的最大位数format.setMaximumFractionDigits(0);fen = format.format(temp);} catch (ParseException e) {e.printStackTrace();}}else{System.out.println("参数格式不正确!");}return fen;}}

控制台输出:



原创粉丝点击