📄 numberutility.java
字号:
/**
* $RCSfile: NumberUtility.java,v $
* $Revision: 1.1.1.1 $
* $Date: 2004/01/07 05:06:28 $
*
* Copyright (C) 2003 ICSS, Inc. All rights reserved.
*
* This software is the proprietary information of ICSS, Inc.
* Use is subject to license terms.
*/
package com.gctech.misc.util;
import java.text.DecimalFormat;
/**
* <p>Title: OA系统</p>
* <p>Description: 数字常用的方法</p>
* <p>Copyright: Copyright (c) 2002-12-5</p>
* <p>Company: 中软远东国际</p>
*
* @version 1.0
* @author Andy
*/
public class NumberUtility {
/**
* 格式化double类型数字 保留decimalDigits位小数
*
* @param number 要格式化的double数字
* @param decimalDigits 保留小数位数
* @return java.lang.String
*/
public static String formatNumber(double number, int decimalDigits) {
String result;
if (decimalDigits < 0)
throw new IllegalArgumentException("小数位数decimalDigits不能为负。");
if (decimalDigits == 0) {
result = String.valueOf(Math.round(number));
}
else {
StringBuffer format = new StringBuffer("0.");
long l = 1;
for (int i = 0; i < decimalDigits; i++) {
format.append("0");
l *= 10;
}
StringBuffer d = new StringBuffer();
d.append(l).append(".");
for (int i = 0; i < decimalDigits; i++) {
d.append("0");
}
d.append("d");
DecimalFormat decimalFormat = new DecimalFormat(format.toString());
result = decimalFormat.format(Math.round(number * l) / Double.parseDouble(d.toString()));
}
return result;
}
/**
* 格式化float类型数字 保留decimalDigits位小数
*
* @param number 要格式化的float数字
* @param decimalDigits 保留小数位数
* @return java.lang.String
*/
public static String formatNumber(float number, int decimalDigits) {
String result;
if (decimalDigits < 0)
throw new IllegalArgumentException("小数位数decimalDigits不能为负。");
if (decimalDigits == 0) {
result = String.valueOf(Math.round(number));
}
else {
StringBuffer format = new StringBuffer("0.");
long l = 1;
for (int i = 0; i < decimalDigits; i++) {
format.append("0");
l *= 10;
}
StringBuffer d = new StringBuffer();
d.append(l).append(".");
for (int i = 0; i < decimalDigits; i++) {
d.append("0");
}
d.append("d");
DecimalFormat decimalFormat = new DecimalFormat(format.toString());
result = decimalFormat.format(Math.round(number * l) / Double.parseDouble(d.toString()));
}
return result;
}
/**
* 格式化String类型数字 保留decimalDigits位小数
*
* @param number 要格式化的String数字
* @param decimalDigits 保留小数位数
* @return java.lang.String
*/
public static String formatNumber(String number, int decimalDigits) {
return formatNumber(Double.parseDouble(number), decimalDigits);
}
public static void main(String args[]) {
System.out.println(Long.MAX_VALUE);
System.out.println("NumberUtility.formatNumber(12.2345, 3) = " + formatNumber(12.2345, 3));
System.out.println("NumberUtility.formatNumber(12.2345, 2) = " + formatNumber(12.2345, 2));
System.out.println("NumberUtility.formatNumber(\"12.2345\", 3) = " + formatNumber("12.2345", 3));
System.out.println("NumberUtility.formatNumber(\"12.2345\", 2) = " + formatNumber("12.2345", 2));
System.out.println("将会出错:");
System.out.println(formatNumber(12.2345, -1));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -