Программа «Перевод десятичных чисел в другие системы счисления»

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ChangeSystem
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamReader sr = new StreamReader(«input.txt»);
            double n = double.Parse(sr.ReadLine());
            int p = int.Parse(sr.ReadLine());
            int k = int.Parse(sr.ReadLine());
            sr.Close();
            StreamWriter sw = new StreamWriter(«output.txt»);
            sw.WriteLine(«Первоначальное число: » + n);
            sw.WriteLine(Integer(n, p));
            sw.WriteLine(«0″ + Fraction(n, p, k));
            sw.WriteLine(Cccombo(n, p, k));
            sw.Close();
        }
        /// <summary>
        /// Перевод целой части числа
        /// </summary>
        /// <param name=»n»>Исходное число в системе double</param>
        /// <param name=»p»>Основание системы в которую нужно перевести число</param>
        /// <returns>Число в заданной системе счисления</returns>
        static string Integer(double n, int p)
        {
            string[] arr = n.ToString().Split(‘,’);
            int temp = int.Parse(arr[0]);
            int c0;
            string tmp = «»;
            string res = «»;
            while (temp != 0)
            {
                c0 = temp % p;
                temp = temp / p;
                tmp += c0;
            }
            for (int i = tmp.Length — 1; i >= 0; i—)
                res += tmp[i].ToString();
            if (res == «»)
                res = «0″;
            return res;
        }
        /// <summary>
        /// Перевод дробной части числа
        /// </summary>
        /// <param name=»n»>Исходное число в системе double</param>
        /// <param name=»p»>Основание системы в которую нужно перевести число</param>
        /// <param name=»k»>Количество знаков после запятой</param>
        /// <returns>Число в заданной системе счисления</returns>
        static string Fraction(double n,int p, int k)
        {
            string[] arr = n.ToString().Split(‘,’);
            n = double.Parse(«0,» + arr[1]);
            string res = «,»;
            int c0;
            while (n != 0 && res.Length < k)
            {
                n = n * p;
                string[] mass = n.ToString().Split(‘,’);
                if (mass.Length == 1)
                {
                    Array.Resize<string>(ref mass, 2);
                    mass[1] = «0″;
                }
                c0 = int.Parse(mass[0]);
                n = double.Parse(«0,» + mass[1]);
                res += c0;
            }
            return res;
        }
        /// <summary>
        /// Выполняет перевод всего числа в систему счисления с основанием k
        /// </summary>
        /// <param name=»n»>Исходное число в системе double</param>
        /// <param name=»p»>Основание системы в которую нужно перевести число</param>
        /// <param name=»k»>Количество знаков после запятой</param>
        /// <returns>Число в заданной системе счисления</returns>
        static string Cccombo(double n, int p, int k)
        {
            string integ = Integer(n, p);
            string fract = Fraction(n, p, k);
            return integ + fract;
        }
    }
}