public static String dbl2Hex(double d)
   {  NumberFormat nf   =NumberFormat.getNumberInstance();
      String   S        =nf.format(d); S+=(S.length()<2?".0":"");
      String[] s        =S.replace(".", ":").split(":",2); 
      long     i        =Long.parseLong("0"+s[0]); 
      String   signo    =(Long.signum(i)==-1?"1":"0"); if(Long.signum(i)==-1) i=Math.abs(i);
      String   uno      =(Long.signum(i)==0?"0":"1");
      int      largo    =Long.toBinaryString(i).substring(1).length();
      String   mantisa  =UStr.padR(Long.toBinaryString(i).substring(1),"0",23); 
      String   exponente=UStr.padL(((largo>0)?Integer.toBinaryString(largo+127):""),"0",8);
      String   manhex   =((largo>0)?UStr.trimR(bin2Hex(mantisa.substring(0,4))+bin2Hex(mantisa.substring(4,8))+bin2Hex(mantisa.substring(8,12))+bin2Hex(mantisa.substring(12,16))+bin2Hex(mantisa.substring(16,20))+bin2Hex(mantisa.substring(20,23)),"0"):"0");
      String   hex=(signo.equals("1")?"-":"")+"0x"+uno+"."+manhex+"p"+((largo>0)?bin2Int(exponente)-127:"0");
      return(hex);
   }