| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Почему 0.05 * 0.006 = 0.00030000000000000003? |
| Автор: mrHunter 22.7.2008, 12:31 | ||
| Visual Studio 2005 & C# Вот простенький пример кода:
Останавливаю в режиме отладки и вижу, что c = 0.00030000000000000003. 20 знаков после запятой!!! Почему??? Ведь должно получиться 0.0003.... В чем дело, кто-нибудь может объяснить? Хотя для типа double в msdne четко сказано, 15 значащих цифр... Это не благой интерес. Очень нужно, чтобы все было по нормальному... Про проблемы с записью в БД я уже писал... |
| Автор: Fox21 22.7.2008, 12:59 |
| Используй decimal |
| Автор: mrHunter 22.7.2008, 13:26 |
| Это компилятор такой кривой? Ну не должно же так быть... Да блин, такую простенькую операцию компилятор от Microsoft и то не мог правильно посчитать... |
| Автор: nikitao 22.7.2008, 13:29 |
| это отладчик такое показывает. На практике все впорядке будет. не бушуйте на компилятор |
| Автор: amarenkov 22.7.2008, 13:48 |
Ну, вот можно и не смотреть на цифры после 15 |
| Автор: FREEDEV 22.7.2008, 13:52 |
| Math.Round (Double, Int32) в помощь |
| Автор: Bishop 22.7.2008, 17:12 | ||
ага, хотя бы там почитайте, сколько там "четко", и примечания почитайте для общего развития, и раздел "Using Floating-Point Numbers" не пропускайте. |