A friend of mine runs a pharmacy.   He has a specialized function in his Dispensary application which receives a decimal value of currency and replaces it to a standard value.   This value is regulated by a government department.



Task

Given a floating point value between   0.00   and   1.00,   rescale according to the following table:

>=  0.00  <  0.06  :=  0.10
>=  0.06  <  0.11  :=  0.18
>=  0.11  <  0.16  :=  0.26
>=  0.16  <  0.21  :=  0.32
>=  0.21  <  0.26  :=  0.38
>=  0.26  <  0.31  :=  0.44
>=  0.31  <  0.36  :=  0.50
>=  0.36  <  0.41  :=  0.54
>=  0.41  <  0.46  :=  0.58
>=  0.46  <  0.51  :=  0.62
>=  0.51  <  0.56  :=  0.66
>=  0.56  <  0.61  :=  0.70
>=  0.61  <  0.66  :=  0.74
>=  0.66  <  0.71  :=  0.78
>=  0.71  <  0.76  :=  0.82
>=  0.76  <  0.81  :=  0.86
>=  0.81  <  0.86  :=  0.90
>=  0.86  <  0.91  :=  0.94
>=  0.91  <  0.96  :=  0.98
>=  0.96  <  1.01  :=  1.00



/*REXX program re─scales a (decimal fraction)  price  (in the range of:   0¢  ──►  $1). */
pad= '     '                                     /*for inserting spaces into a message. */
          do j=0  to 1  by .01                   /*process the prices from 0¢  to  ≤ $1 */
          if j==0  then j= 0.00                  /*handle the special case of zero cents*/
          say pad  'original price ──►'    j   pad   adjPrice(j)     " ◄── adjusted price"
          end   /*j*/
exit 0                                           /*stick a fork in it,  we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
adjPrice: procedure;  parse arg ?                /*a table is used to facilitate changes*/
                                     select
                                     when ?<0.06  then ?= 0.10
                                     when ?<0.11  then ?= 0.18
                                     when ?<0.16  then ?= 0.26
                                     when ?<0.21  then ?= 0.32
                                     when ?<0.26  then ?= 0.38
                                     when ?<0.31  then ?= 0.44
                                     when ?<0.36  then ?= 0.50
                                     when ?<0.41  then ?= 0.54
                                     when ?<0.46  then ?= 0.58
                                     when ?<0.51  then ?= 0.62
                                     when ?<0.56  then ?= 0.66
                                     when ?<0.61  then ?= 0.70
                                     when ?<0.66  then ?= 0.74
                                     when ?<0.71  then ?= 0.78
                                     when ?<0.76  then ?= 0.82
                                     when ?<0.81  then ?= 0.86
                                     when ?<0.86  then ?= 0.90
                                     when ?<0.91  then ?= 0.94
                                     when ?<0.96  then ?= 0.98
                                     when ?<1.01  then ?= 1.00
                                     otherwise    nop
                                     end   /*select*/
          return ?