How to resolve the algorithm Price fraction step by step in the Fantom programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Price fraction step by step in the Fantom programming language
Table of Contents
Problem Statement
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.
Given a floating point value between 0.00 and 1.00, rescale according to the following table:
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Price fraction step by step in the Fantom programming language
Source code in the fantom programming language
class Defn // to hold the three numbers from a 'row' in the table
{
Float low
Float high
Float value
new make (Float low, Float high, Float value)
{
this.low = low
this.high = high
this.value = value
}
}
class PriceConverter
{
Defn[] defns := [,]
new make (Str table) // process given table and store numbers from each row in a defn
{
table.split('\n').each |Str line|
{
data := line.split
defns.add (Defn(Float.fromStr(data[1]), Float.fromStr(data[3]), Float.fromStr(data[5])))
}
}
public Float convert (Float price) // convert by looking through list of defns
{
Float result := price
defns.each |Defn defn|
{
if (price >= defn.low && price < defn.high)
result = defn.value
}
return result
}
}
class Main
{
public static Void main ()
{
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"
converter := PriceConverter (table)
10.times // simple test with random values
{
price := (0..100).random.toFloat / 100
echo ("$price -> ${converter.convert (price)}")
}
}
}
You may also check:How to resolve the algorithm Euler's sum of powers conjecture step by step in the Nim programming language
You may also check:How to resolve the algorithm Floyd's triangle step by step in the Prolog programming language
You may also check:How to resolve the algorithm Apply a callback to an array step by step in the SuperCollider programming language
You may also check:How to resolve the algorithm Hofstadter-Conway $10,000 sequence step by step in the REXX programming language
You may also check:How to resolve the algorithm Zeckendorf number representation step by step in the Phix programming language