MySQL выбирает неверный результат, когда значение поля умножается на число

Использование Lodash:

_.mergeWith(oldObj, newObj, function (objectValue, sourceValue, key, object, source) {
    if ( !(_.isEqual(objectValue, sourceValue)) && (Object(objectValue) !== objectValue)) {
        console.log(key + "\n    Expected: " + sourceValue + "\n    Actual: " + objectValue);
    }
});

Я не использую ключ / объект / источник, но я оставил его там, если вам нужно доступ к ним. Сравнение объектов просто препятствует консоли печатать различия с консолью от внешнего элемента до самого внутреннего элемента.

Вы можете добавить некоторую логику внутри для обработки массивов. Возможно, сначала отсортируйте массивы. Это очень гибкое решение.

EDIT

Изменено с _.merge на _.mergeWith из-за обновления lodash. Спасибо Aviron за то, что заметили изменения.

0
задан noufalcep 18 January 2019 в 06:51
поделиться

1 ответ

Похоже, ваш столбец имеет тип данных с плавающей точкой.

Вы должны CAST столбец значений в виде целых / десятичных чисел, а не в виде чисел с плавающей запятой.

(CAST(value AS Decimal(5,2)) * 100 AS `multiplied_value`
0
ответ дан Noman 18 January 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: