А> double d_v=133.20; А> double d_y=10; А> long l_v=(long)(d_v*100); А>- получается 13319
Дело в том, что вещественное число 133.2 не имеет конечного двоичного представления. Для машины это бесконечная дробь, часть знаков которой хранится, а отброшенные и составляют ту самую погрешность. После умножения на 10, число не становится целым, а по прежнему имеет хвост из девяток (в десятичном представлении). Преобразование (long) просто отбрасывает дробную часть Вашего числа и оставляет целую, а она равна 13319, за которой следует .9999999
Вам следует использовать функции округления при преобразовании вещественных чисел к целым типам, а не просто преобразование типов.