有个十六进制小数,如何转化为十进制小数,如1.2d3e423c.一后面的为小数点。

解决方案 »

  1.   

    十六进制转化为十进制,我用inttohex(50,2)的形式,小数没试过
      

  2.   

    我觉得先把小数位去掉,譬如1.2d3e423c需要乘以16的八次方。然后加上1*16,最后在除以16的八次方,这样不就可以了么。不过这样好麻烦,希望能给你帮助。
      

  3.   

    sundayzhao(皮皮虾) 的方法好象不行,未化为十进制时,也不好相乘
      

  4.   

    跟刚才的问题一样啊,是不是你呢?var
     f:Double;s:=Trim('1.2d3e423c');
    i:=Pos('.',s);
    f:=StrToInt('$'+Copy(s,1,i-1));//得到整数部分
    f:=f + StrToInt('$'+Copy(s,i+1,Length(s)))/Power(16,Length(s)-i);//加上小数部分