Назад к вопросам
JuniorТеорияЧасто
Что выведет программа (строки через пробел)?
double a = 0.1 + 0.2;
decimal b = 0.1m + 0.2m;
Console.WriteLine(a == 0.3);
Console.WriteLine(b == 0.3m);False True
- Ждать, что
0.1 + 0.2 == 0.3дастtrue:doubleхранит двоичные дроби, и сумма равна0.30000000000000004. - Ждать, что
decimalтоже промахнётся: он хранит десятичные цифры, и0.1m + 0.2m— ровно0.3m.
- Как проверить, что два значения
doubleравны с точностью до допуска? - Почему для денег выбирают
decimal, хотя он медленнееdouble?