FileDocCategorySizeDatePackage
RKUtil.javaAPI DocApache Poi 3.0.12511Mon Jan 01 12:39:36 GMT 2007org.apache.poi.hssf.util

RKUtil

public class RKUtil extends Object
Utility class for helping convert RK numbers.
author
Andrew C. Oliver (acoliver at apache dot org)
author
Glen Stampoultzis (glens at apache.org)
author
Rolf-Jürgen Moll
see
org.apache.poi.hssf.record.MulRKRecord
see
org.apache.poi.hssf.record.RKRecord

Fields Summary
Constructors Summary
private RKUtil()

    
Methods Summary
public static doubledecodeNumber(int number)
Do the dirty work of decoding; made a private static method to facilitate testing the algorithm

        long raw_number = number;

        // mask off the two low-order bits, 'cause they're not part of
        // the number
        raw_number = raw_number >> 2;
        double rvalue = 0;

        if ((number & 0x02) == 0x02)
        {
            // ok, it's just a plain ol' int; we can handle this
            // trivially by casting
            rvalue = ( double ) (raw_number);
        }
        else
        {

            // also trivial, but not as obvious ... left shift the
            // bits high and use that clever static method in Double
            // to convert the resulting bit image to a double
            rvalue = Double.longBitsToDouble(raw_number << 34);
        }
        if ((number & 0x01) == 0x01)
        {

            // low-order bit says divide by 100, and so we do. Why?
            // 'cause that's what the algorithm says. Can't fight city
            // hall, especially if it's the city of Redmond
            rvalue /= 100;
        }

        return rvalue;