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



go =>
   _ = random2(),
   D = [
     [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]],
 
  Len = D.length,
  foreach(_ in 1..10) 
    R = frand2(100),
    between(1,Len,Ix),
    R >= D[Ix,1],
    R < D[Ix,2],
    New = D[Ix,3],
    println(R=New)
  end,
  nl.
 
% Getting numbers of precision 2
frand2(N) = (random() mod N)/N.