com.darwinsys.util
Class ScaledNumberFormat

java.lang.Object
  extended by java.text.Format
      extended by com.darwinsys.util.ScaledNumberFormat
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class ScaledNumberFormat
extends java.text.Format

Format numbers scaled for human comprehension. "Human-readable" output uses43 digits max, and puts unit suffixes at the end. Makes output compact and easy-to-read esp. on huge disks. Formatting code was originally in OpenBSD "df", converted to library routine. Scanning code written by Ian Darwin, originally for OpenBSD libutil. Rewritten in Java in January, 2001; re-synched with OpenBSD in 2004.

Version:
$Id: ScaledNumberFormat.java,v 1.10 2006/10/11 04:09:22 ian Exp $
Author:
Ian F. Darwin, http://www.darwinsys.com/
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.text.Format
java.text.Format.Field
 
Constructor Summary
ScaledNumberFormat()
           
 
Method Summary
 java.lang.String format(double n)
          Non-standard overload: Format a double as a Scaled Numeral; just truncate to a long, and call format(long).
 java.lang.String format(long number)
          Non-standard overload; Format a given long as a Scaled Numeral.
 java.lang.StringBuffer format(java.lang.Object on, java.lang.StringBuffer sb, java.text.FieldPosition fp)
           
 java.lang.Object parseObject(java.lang.String arg0)
           
 java.lang.Object parseObject(java.lang.String s, java.text.ParsePosition where)
          Parse a String expected to contain a number in Human Scaled Form.
 
Methods inherited from class java.text.Format
clone, format, formatToCharacterIterator
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ScaledNumberFormat

public ScaledNumberFormat()
Method Detail

parseObject

public java.lang.Object parseObject(java.lang.String s,
                                    java.text.ParsePosition where)
Parse a String expected to contain a number in Human Scaled Form.

Specified by:
parseObject in class java.text.Format
Parameters:
s - - String to be parsed.
where - Ignored - required by API
Returns:
a Long containing the value (value is always integral, even though has a fractional part before scaling).

parseObject

public java.lang.Object parseObject(java.lang.String arg0)
                             throws java.text.ParseException
Overrides:
parseObject in class java.text.Format
Throws:
java.text.ParseException

format

public java.lang.StringBuffer format(java.lang.Object on,
                                     java.lang.StringBuffer sb,
                                     java.text.FieldPosition fp)
Specified by:
format in class java.text.Format

format

public java.lang.String format(double n)
Non-standard overload: Format a double as a Scaled Numeral; just truncate to a long, and call format(long).


format

public java.lang.String format(long number)
Non-standard overload; Format a given long as a Scaled Numeral. This method is the REAL FORMATTING ENGINE.



Copyright © 1996-2004 Ian F. Darwin. See license.html for usage license.