Когда я ввожу число 6 оно возводится в квадрат, получается 36, оно делится на 10 получается 3,6 и записывается в переменную k, во второй переменной число округляется в меньшую сторону, в итоге получается 3, потом от 3,6 отнимается 3, должно получатся 0,6, но при выводе я вижу 0,59999.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
double n, b, c, d = 0, k;
int a = 0;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
char number = e.KeyChar;
if (!Char.IsDigit(number) && number != 8 && number != 44)
{
e.Handled = true;
}
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
label2.Text = "Введите число";
}
else
{
label2.Visible = false;
n = int.Parse(textBox1.Text);
for (int i = 1; i <= n; i++)
{
b = i;
c = i * i;
d = 0;
while (b >= 1)
{
b = b / 10;
d += 1;
}
for (int j = 1; j <= d; j++)
{
c = c / 10;
}
k = c;//здесь получается 3,6
c = Math.Floor(c);//здесь 3
k = k - c;//здесь 0,59999
for (int l = 1; l <= d; l++)
{
k = k * 10;
}
if (k == i)
{
a += 1;
}
}
label1.Text = a.ToString();
a = 0;
}
}
}
}