Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Неравенство двух одинаковых чисел в vba, Неравенство двух одинаковых чисел в vba
 
При проверке условия неравенства элементов двух массивов, которые равны, код показывает, что они не равны. Скрин прилаагется
 
SerVBA, Где вы видели равенство в нашем бренном мире?
 
БМВ, разве что в конституции, ага)

Но в вба я привык к равенству, а тут вот такая загвоздка. Причем проблема в двумерном массиве, из массива KS число берется правильно. Т.е. если написать KS(8) < 375.9, то вба вернет false, а если написать For_compareKS(3,1) < 375.9, то это равенства вба признает true)

Впервые сталкиваюсь с таким поведением VBA, что делать-то?)
 
Вообще, сложно по скрину судить равенство чисел. Может это Ваша ситуация: Excel неправильно считает. Почему?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Да нет, в формате ячеек нет проблем, да и до этого код нормально работал. Я уже читал эту статью кстати)
 
Цитата
SerVBA написал:
разве что в конституции,
я то о том что написал Дмитрий Щербаков,  For_compareKS - что там она вернула, с какой точностью ... что там в N разряде после запятой ...... скрин представления нам не дает. Округлите до нужного числа разрядов и проверьте.

P.S. Если расстояние мерять шагами, то потом нет смысла выдавать расчет до миллиметра, говоря, что калькулятор так может,
 
Числа просто равны, они заканчиваются на первом знаке после запятой, без округления. Могу скрин скинуть, но смысл). Это первое на чё я смотрел
 
Цитата
SerVBA написал:
Могу скрин скинуть
могу скрин кинуть, где числа будут не равны :) Но что это даст? Вы поймите, скринами мы друг другами всевозможными можем закидать, проблему-то это не решит и свет на неё не прольет. Скиньте файл с кодом, который воспроизводит ситуацию - тогда и будем решать. А так можно исключительно на IEEE754 грешить. Или на некий косяк логики в коде :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
в окно Watches скопируйте это:
round(for_compareKS(3,1),10) = 375.9
что пишется в колонке Value??
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Всем спасибо, я вычислял оказывается значения для двумерного массива и возникала неточность, после округления все норм стало. Не заметил)  
Страницы: 1
Читают тему (гостей: 1)
Наверх