1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 29
|
||||||
1 | ||||||
.NET 2.x Дикие округления при математических рассчетах16.02.2011, 15:29. Показов 2142. Ответов 3
Метки нет (Все метки)
Имеется такой вот код:
При дебаге с каждой итерацией цикла переменная i увеличивается строго на 1. Что за фокусы такие в .NET?
0
|
16.02.2011, 15:29 | |
Ответы с готовыми решениями:
3
Неточности округления при разделении числа на целую и дробную часть Реализация округления при делении Устранение округления при вычислении площади Ошибка округления при использовании float или double |
Почетный модератор
|
||||||
16.02.2011, 15:51 | 2 | |||||
Ticksy, Вы понимаете разницу между целыми типами и типами с плавающей точкой? Какие будут результаты при делении 1 на 2 типа Int32 (целый тип), и какой результат если тип будет хотя-бы Double (тип с плавающей точкой).
Ответьте про себя, а потом смотрите ответ.
1) 0 - т.к. целый тип не может содержать запятой, и число будет округлено (т.е дает целую часть от деления). 2) 0.5 - а тут без проблем.
1
|
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 29
|
|
16.02.2011, 16:05 [ТС] | 3 |
Понимаю...
Как тогда производить деление, чтобы результат оказывался в double? Приписывать в конце числа первую букву его типа (судя по примеру) или писать типа 1.0/2.0? Хотя в данном случае можно указать 0.5 (это я для удобства так записал...). Ох уж эта моя логика после PHP... (там нет строгой типизации).
0
|
Почетный модератор
|
|
16.02.2011, 16:11 | 4 |
Можно так, можно через литерал (1d, 2d, 3d, ... )) Если в числе есть точка, то оно по умолчанию считается типом double.
Для float (4 байта): 1.0f, 1f, 2.5f, 2f, ... Для double (8 байт): 1.0, 1d, 2.5, 2d, ... Для decimal (16 байт): 1.0m, 1m, 2.5m, 2m, ... Буквы могут быть как строчными так и заглавными. Почитайте книжки.
1
|
16.02.2011, 16:11 | |
16.02.2011, 16:11 | |
Помогаю со студенческими работами здесь
4
Дикие шумы в сеть от 852D+ Дикие артефакты на новом компьютере Дикие невыносимые лаги на новом компе Asus X53S Начались дикие лаги Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |