在java中将二进制分数转换为十进制

时间:2014-05-01 01:44:59

标签: java binary

我想将二进制小数转换为decimal.Consider二进制数1101.1110。我知道手动转换方法,我可以以程序的形式,但我无法将小数部分与数字分开。我需要将它分开,因为转换方法在该点之后不同。

将十进制转换为二进制时,小数部分可以这样分开:

double num=12.23;

int fraction=num-(long)num;
你可以帮助我。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我假设你想要一个double类型的结果。在没有该点的情况下解析你的字符串,然后除以该点后面的位数的正确幂2。

int placesAfterPoint = binaryString.length() - binaryString.indexOf(".") - 1;
long numerator = Long.parseLong(binaryString.replace(".", ""), 2);
double value = ((double) numerator) / ( 1L << placesAfterPoint );

答案 1 :(得分:0)

我会将您的输入转换为字符串,获取indexOf小数点,删除所有小数点后的字符串,将原始字符串截断到小数点之前,将两个字符串解析回您首选的整数格式,那么你可以在每个方法上采用不同的方法。