001: package net.xoetrope.xui.helper;
002:
003: import java.text.DecimalFormatSymbols;
004: import java.text.NumberFormat;
005: import java.text.ParseException;
006:
007: /**
008: * A utility to help format numbers in accordance with the current Locale
009: * <p>Copyright (c) Xoetrope Ltd., 1998-2004</p>
010: * $Revision: 1.4 $
011: */
012: public class NumberFormatter {
013: public NumberFormatter() {
014: }
015:
016: public String formatNumber() {
017: return "";
018: }
019:
020: /**
021: * Convert a string to a Number
022: * @param input thge input string
023: * @return the Number object
024: */
025: public static Number parse(String input) {
026: try {
027: return NumberFormat.getInstance().parse(input);
028: } catch (ParseException ex) {
029: return null;
030: }
031: }
032:
033: /**
034: * Convert a string to a double value
035: * @param input the input string representation of the number
036: * @return the numeric value
037: */
038: public static double parseDouble(String input) {
039: try {
040: return NumberFormat.getInstance().parse(input)
041: .doubleValue();
042: } catch (ParseException ex) {
043: return 0;
044: }
045: }
046:
047: /**
048: * Convert a string to an int value
049: * @param input the input string representation of the number
050: * @return the numeric value
051: */
052: public static int parseInt(String input) {
053: try {
054: return NumberFormat.getInstance().parse(input).intValue();
055: } catch (ParseException ex) {
056: return 0;
057: }
058: }
059:
060: /**
061: * Convert a string to a float value
062: * @param input the input string representation of the number
063: * @return the numeric value
064: */
065: public static float parseFloat(String input) {
066: try {
067: return NumberFormat.getInstance().parse(input).floatValue();
068: } catch (ParseException ex) {
069: return 0;
070: }
071: }
072:
073: /**
074: * Get the current decimal separator character
075: */
076: public static char getDecimalSeparator() {
077: return new DecimalFormatSymbols().getDecimalSeparator();
078: }
079:
080: /**
081: * Convert a double value to a string
082: * @param input the input numeric value
083: * @return the string representation of the number
084: */
085: public static String format(double input) {
086: return NumberFormat.getInstance().format(input);
087: }
088:
089: /**
090: * Convert a double value to a string
091: * @param input the input numeric value
092: * @return the string representation of the number
093: */
094: public static String formatDouble(double input) {
095: String value = format(input);
096: return String.valueOf(parseDouble(value));
097: }
098:
099: /**
100: * Convert a long value to a string
101: * @param input the input numeric value
102: * @return the string representation of the number
103: */
104: public static String format(long input) {
105: return NumberFormat.getInstance().format(input);
106: }
107:
108: /**
109: * Convert a Object (Double,Float etc) value to a string
110: * @param input the input numeric value
111: * @return the string representation of the number
112: */
113: public static String format(Object input) {
114: return NumberFormat.getInstance().format(input);
115: }
116: }
|