I am attempting to round my currency figures to two decimal places whether or not the amount ends with zeros (e.g., $4.00, $0.10); however, it is returning $4 and $0.1.
I am using the following search command: eval cost = "$ " . tostring(round(count*.02, 2), "commas").
Doing this correctly requires some knowledge about significant figures and precision.
In multiplying by the number .02 (which has 1 significant figure), you limit your result to 1 significant figure. The precision is then set from that result.
What you seem to be looking for is exact arithmetic with a precision of 2. The exact() function forces a number to have maximum sigfigs and precision, while the round() function can force your precision. Assuming that count is a non-negative integer, this solution should work for you:
eval cost = "$ " . tostring(round(count*exact(.02), 2), "commas")
Doing this correctly requires some knowledge about significant figures and precision.
In multiplying by the number .02 (which has 1 significant figure), you limit your result to 1 significant figure. The precision is then set from that result.
What you seem to be looking for is exact arithmetic with a precision of 2. The exact() function forces a number to have maximum sigfigs and precision, while the round() function can force your precision. Assuming that count is a non-negative integer, this solution should work for you:
eval cost = "$ " . tostring(round(count*exact(.02), 2), "commas")
IMHO this is completely unexpected and unwanted in the majority of cases. It is supposed this is not a framework for physical calcula...