Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Некорректное умножение

Всем привет.

Может кто-то сталкивался уже с таким вопросом: делаю простое умножение Курса на Себестоимость, в данном случае 62,18*65,93. Результат 4 099,36, а должен быть 4 099,53.

Как такое может быть?

1.jpg

1 Solution

Accepted Solutions
Not applicable
Author

Пробуйте использовать в формуле что то типа

round(курс,0.01) * round(Себестоимость,0.01)

View solution in original post

11 Replies
Eugeny_Ilyin
Creator II
Creator II

Проверьте значения полей в таблицах. что-то я сомневаюсь, что разрядность курса 2 знака, а не 4.

В вычислениях участвуют не отображаемые значения а данные, которые хранятся в таблицах модели данных.

Not applicable
Author

Это я проверяла уже. Вот Курс именно с двумя знаками загружается.

1.jpg

Eugeny_Ilyin
Creator II
Creator II

А себестоимость?  62,1775 ?

Not applicable
Author

Пробуйте использовать в формуле что то типа

round(курс,0.01) * round(Себестоимость,0.01)

Not applicable
Author

а, забыла прикрепить.

Себестоимость тоже с двумя знаками.

1.jpg

Not applicable
Author

О!! А вот это помогло. Спасибо.

А почему так получается, подскажите?

Eugeny_Ilyin
Creator II
Creator II

Интересно. Где-то все-таки больше 2 знаков. Что выдаст Себестоимость*10000 ?

Not applicable
Author

Блин, в курсе все-таки. При умножении курса вот получается:1.jpg

То есть получается, что формат не имеет значения здесь? Нужно именно обрезать или еще на уровне sql обрезать?

Eugeny_Ilyin
Creator II
Creator II

Ну это уже вам по задаче смотреть.

Формально, умножение как раз корректно, ведь курсы устанавливаются с 4-мя знаками после запятой.

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