PDA

View Full Version : نوع داده single



mandagarana
یک شنبه 22 اردیبهشت 1398, 11:20 صبح
با سلام
در مورد نوع داده single کسی میتونه راهنمایی بکنه؟
یه تیکه کد پیدا کردم خروجیش خیلی برام عجیبیه


public void Main()
{
Single value = .2f;
Single result1 = value * 10f;
Single result2 = 0f;
for (int ctr = 1; ctr <= 10; ctr++)
{
Console.WriteLine(".2 Added "+result2+" {0:R}", result2+value);
result2 += value;
Console.WriteLine();
}
}

خروجی کد میشه این



150169

farhad_shiri_ex
یک شنبه 22 اردیبهشت 1398, 12:00 عصر
با سلام
در مورد نوع داده single کسی میتونه راهنمایی بکنه؟
یه تیکه کد پیدا کردم خروجیش خیلی برام عجیبیه


public void Main()
{
Single value = .2f;
Single result1 = value * 10f;
Single result2 = 0f;
for (int ctr = 1; ctr <= 10; ctr++)
{
Console.WriteLine(".2 Added "+result2+" {0:R}", result2+value);
result2 += value;
Console.WriteLine();
}
}

خروجی کد میشه این



150169




System.Single یک نوع داده متناظر در فریم وورک FCL هست! برای نوع داده اصلی float (مقدار اعشاری 32 بیتی)

System.Single f = new System.Single(0.1);
float f = 0.1

حالا چی این کد براتون عجیبه؟

mandagarana
یک شنبه 22 اردیبهشت 1398, 13:50 عصر
چرا 1.2+0.2=1.4000001 میشه؟

Shadow_net
یک شنبه 22 اردیبهشت 1398, 16:53 عصر
مربوط به {0:R} هستش و داره بهش فرمت میده
حذفش کنید
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/formatting-numeric-results-table