This horizontal layout is a very poor choice for such a data set, and a long data set would make the programming easier. So, let's create a long data set, and then the calculations are trivial.
data have;
input Description $ number_1 number_2 number_3 total;
cards;
Quantity 1 2 3 6
Value 10 20 30 60
;
proc transpose data=have out=have_t;
id description;
run;
data want;
set have_t;
total_amount=quantity*value;
run;
Hint: don't arrange your data in wide data sets if at all possible. Arrange your data in long data sets (such as data set HAVE_T in the code above) whenever possible, this make the programming much easier in most cases. See Maxim 19.
--
Paige Miller