package com.thinker.test.test5;

public class Test_5_2{
	
	/**
	 *	题目：
	 *	给定一个介于0和1之间的实数（如：0.27），类型位double，打印他的二进制
	 *	表示。如果该数字无法精确地用32位以内的二进制表示，则打印"ERROR"。
	 *		
	 **/
	public static void main(String[] args){
		String result = go(0.5);
		System.out.println(result);
	}
	public static String go(double num){
		if((num < 0) || (num >1) ) return "error";
		StringBuffer b = new StringBuffer();
		b.append(".");
		while(num > 0){
			if(b.length() >= 32) return "error";
			num *= 2;
			if(num >= 1) {
				b.append("1");
				num -= 1;
			}else{
				b.append("0");
			}
		}
		return b.toString();
	}
}
