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



 
function Convert-PriceFraction
{
    [CmdletBinding()]
    [OutputType([double])]
    Param
    (
        [Parameter(Mandatory=$true,
                   ValueFromPipeline=$true,
                   ValueFromPipelineByPropertyName=$true,
                   Position=0)]
        [ValidateScript({$_ -ge 0.0 -and $_ -le 1.0})]
        [double]
        $InputObject
    )
 
    Process
    {
        foreach ($fraction in $InputObject)
        {
            switch ($fraction)
            {
                {$_ -lt 0.06} {0.10; break}
                {$_ -lt 0.11} {0.18; break}
                {$_ -lt 0.16} {0.26; break}
                {$_ -lt 0.21} {0.32; break}
                {$_ -lt 0.26} {0.38; break}
                {$_ -lt 0.31} {0.44; break}
                {$_ -lt 0.36} {0.50; break}
                {$_ -lt 0.41} {0.54; break}
                {$_ -lt 0.46} {0.58; break}
                {$_ -lt 0.51} {0.62; break}
                {$_ -lt 0.56} {0.66; break}
                {$_ -lt 0.61} {0.70; break}
                {$_ -lt 0.66} {0.74; break}
                {$_ -lt 0.71} {0.78; break}
                {$_ -lt 0.76} {0.82; break}
                {$_ -lt 0.81} {0.86; break}
                {$_ -lt 0.86} {0.90; break}
                {$_ -lt 0.91} {0.94; break}
                {$_ -lt 0.96} {0.98; break}
                Default       {1.00}
            }
        }
    }
}
 