95/100 (left-to-right associativity) does integer division. The result is 0, because it rounds down to the nearest integer. And then 0 times anything is 0.
To prevent this, make at least one of the operands a floating-point type.
95/100*price is parsed as (95/100) * price
(multiplication and division have equal precedence, they associate from left-to-right.)
Evaluated "as if":
1 2 3 4 5 6 7 8
constint a = (95/100) ; // both operands are of type int, integer division, result is 0
constfloat b = float(a) ; // convert the result of the integer division to float, result is 0.0f
// see: usual arithmetic conversions http://en.cppreference.com/w/c/language/conversionconstfloat c = b * price ; // this is the result of the value computation of 95/100*price
payment = c ; // assign the result to payment
Note: strongly favour using double as the default floating point type.