Поскольку вы объявили minusPrice
как Integer
, он не может содержать дроби. Расчет выполнен правильно, но затем он преобразуется в целое число.
То, что происходит в коде, на самом деле:
minusPrice = CInt(CDbl(minus) * 0.3)
Если вы объявите minusPrice
как Double
или Decimal
, результат вычисления не будет преобразован.
Тип Double
используется для обычных операций с плавающей запятой. Вам необходимо знать о точности, но если вы используете это только для отображения цены, этого достаточно.
Тип Decimal
- это тип данных с фиксированной запятой, что означает, что он может точно представлять дробные значения. Это то, что вы должны использовать, если вам нужно серьезно отследить денежную стоимость.