convertNum2Binary :: Int -> String convertNum2Binary num | num <= 1 = show num | otherwise = convertNum2Binary (num `div` 2) ++ show (num `mod` 2) convertFraction2Binary :: Float -> String convertFraction2Binary num | (num < 0) || (num >= 1) = "Invalid Input" | otherwise = "." ++ convertFraction2BinaryHelper num "" convertFraction2BinaryHelper :: Float -> String -> String convertFraction2BinaryHelper num result | length result >= 23 = result | (2 * num) == 1 = result ++ "1" | (2 * num) < 1 = convertFraction2BinaryHelper (2 * num) (result ++ "0") | otherwise = convertFraction2BinaryHelper (2 * num - 1.0) (result ++ "1") -- convertNum2Binary 100 -- convertFraction2Binary 0.375 -- convertFraction2Binary 0.8