РЕДАКТИРАНЕ:
<Игнориране>Причината да виждате това поведение е, че разбивачите на думи по подразбиране за SQL пълнотекстово търсене са определени от английския език (локал 1033). На английски запетаята е валиден разбивач на думи, като по този начин разделя вашето число на две различни числа. Въпреки това, ако използвате португалския разбивач на думи, FTS доста умело запазва числата заедно. Опитайте да изпълните следната заявка на вашия SQL Server, за да видите как машината за пълен текст анализира същия вход по различен начин в зависимост от посочения локал:
--use locale English
select * from sys.dm_fts_parser('"12345,10"',1033,NULL,0)
--use locale Portuguese
select * from sys.dm_fts_parser('"12345,10"',2070,NULL,0)
Игнориране>
АКТУАЛИЗАЦИЯ:Добре, успях да копирам вашия сценарий и да, изглежда, че е поведение по подразбиране с SQL Server FTS. Изглежда обаче, че се закръгля само до най-близката 1/10 от числото (най-близките 10 сентаво във вашия случай), а НЕ до най-близкото цяло число.
Така например; 12345,88 ще бъде върнато при търсене на както 12345,88, така и 12345,9 , докато 56789,98 ще се появи при търсения за 56789,98, както и за 56790. Въпреки това число като 45678,60 ще остане непокътнато без закръгляване нагоре или надолу, така че не е толкова лошо, колкото си мислите.
Все пак не съм сигурен дали има нещо, което можете да направите, за да промените това поведение. Бързо търсене в Google не даде нищо.