Перевод из десятичной системы счисления в двоичную - C# (202125)
Формулировка задачи:
У меня есть код программы для перевода из десятичной системы счисления в двоичную. Пожалуйста помогите найти здесь ошибку, у меня при ручном переводе получается: 10,1010
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double dec1 = 2.66;
int len = 4;//число знаков после запятой
string str = "";
double dec = dec1;
while (dec > 0)
{
str = String.Concat(Convert.ToString(dec % 2), str);
dec = Math.Truncate(dec / 2);
}
str = str.Remove(str.IndexOf(','));
string str1 = "";
int c;
int n = 0;
dec = double.Parse("0," + dec1.ToString().Remove(0, dec1.ToString().Length - dec1.ToString().IndexOf(',')));
while (n < len)
{
dec *= 2;
c = Convert.ToInt32(Math.Truncate(dec));
str1 = String.Concat(str1, Convert.ToString(c));
dec -= c;
n++;
}
Console.WriteLine(str + "," + str1);
Console.ReadKey();
}
}
}Решение задачи: «Перевод из десятичной системы счисления в двоичную»
textual
Листинг программы
dec = dec1 % 1;