Круглый режим возвращает неправильное значение только для определенных чисел - PullRequest
0 голосов
/ 26 сентября 2019

Я только что столкнулся со странным поведением в своей функции, которую я использую для округления.

Функция просто выполняет:

CAST(ROUND(@numerator / CONVERT(REAL, @denominator) * 100 ,1,1) AS NVARCHAR(MAX)) + '%'

, которую я использую, чтобы отобразить процент.Это работает безупречно, но если я передам 57 или 58 в качестве числителя и 100 в качестве знаменателя, я получу 56,9 или 57,9.Я могу смутно понять причину этого (до того, как обрезать результат 56.99999999 ...), но почему это происходит только с этими числами, а не, например, с 55/100?

Большое спасибо

...