我想将二进制小数转换为decimal.Consider二进制数1101.1110。我知道手动转换方法,我可以以程序的形式,但我无法将小数部分与数字分开。我需要将它分开,因为转换方法在该点之后不同。
将十进制转换为二进制时,小数部分可以这样分开:
double num=12.23;
int fraction=num-(long)num;
你可以帮助我。
提前致谢。
答案 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小数点,删除所有小数点后的字符串,将原始字符串截断到小数点之前,将两个字符串解析回您首选的整数格式,那么你可以在每个方法上采用不同的方法。