blob: e1a3cbc4d3e4bfd9a1eb063557c3f5cfd06bdbdd [file] [log] [blame]
/*
*******************************************************************************
* Copyright (C) 2013, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
package com.ibm.icu.samples.iuc;
import com.ibm.icu.impl.ICUResourceBundle;
import com.ibm.icu.util.UResourceBundle;
/**
* @author srl
*
*/
public class SupplementalUtilities {
/**
* Convert LDML2ICUConverter format floating point (territoryF, etc)
* into double.
* See: SupplementalMapper.java
* @param n input number, such as -48123456
* @return double value, such as -123.456
* @internal
*/
public static double ldml2d(int n) {
if(n == 0) {
return 0.;
}
boolean neg = false;
if(n < 0) {
n = -n;
neg = true;
}
int exp = (n/1000000);
n -= (exp * 1000000);
int sexp = exp - 50; // signed exponent
double d = n;
d = d * Math.pow(10, (sexp-5)); // -5 because 50 isn't quite right..
if(neg) {
d = -d;
}
return d;
}
/** Test function */
public static void main(String... args) {
System.out.println("Testingldml2d");
int junk[] = {
49990000, // 99%
48680000, // 6.8%
57344400, // ?
52940000, // ?
0,
-48123456, // gets -0.012346 not -123.456
-52123456, // this one gets -123.456
46100000,
63146600
};
for(int i=0;i<junk.length;i++) {
System.out.println(Integer.toString(junk[i]) + " -> " + Double.toString(ldml2d(junk[i])));
}
System.out.println();
System.out.println("Testing getICUSupplementalData");
System.out.println("SupplementalData has " + getICUSupplementalData().getSize() + " size. (nonzero is good!)" );
}
/**
* Open ICU supplemental data
* @return the bundle
*/
public static UResourceBundle getICUSupplementalData() {
UResourceBundle suppData = UResourceBundle.getBundleInstance(
ICUResourceBundle.ICU_BASE_NAME,
"supplementalData",
ICUResourceBundle.ICU_DATA_CLASS_LOADER);
return suppData;
}
}