View Full Version : Rounding off
AlexOddbratt 04-15-2006, 10:45 PM I'm wondering if there is a good way to round off float numbers so they only have three decimals.
Example: 0.6987459 = 0.699.
|
|
Segmoria
04-15-2006, 11:36 PM
Well I'm not sure if this can be done directly with a command specifically designed for such a task, but I guess that you can convert the float to a string and then chop the remaining characters you don't want from the end using a combination of the endString and basename commands.
Buexe
04-16-2006, 06:57 AM
Search this forum, I once posted a procedure written by incredible Duncan Brimsmead that rounds off floats to the decimal you specify. I don`t have it here, so I can`t share it. But searching should give you a result.
Edit
found it here
http://forums.cgsociety.org/showthread.php?t=137969&highlight=roundoff
neonoodle
05-04-2006, 07:40 PM
maybe a little late to the party, but I remembered the original post and did a search for it to see if there were any solutions, since I needed a function to round off a number. Didn't see any, so I made my own. Here you go:
global proc float dbRoundOff(float $val, int $accuracy)
{
string $tempVal = $val;
float $returnVal;
int $intVal = $val;
$tempVal = `match "[^\.]*$" $tempVal`;
string $roundString = `substring $tempVal ($accuracy + 1) ($accuracy + 1)`;
int $roundInt = $roundString;
if($accuracy < 1) {
if($roundInt >= 5)
$intVal++;
$returnVal = $intVal;
return $returnVal;
}
$tempVal = startString($tempVal, $accuracy);
int $decimalValue = $tempVal;
if($roundInt >= 5)
$decimalValue++;
$tempVal = $intVal + "." + $decimalValue;
$returnVal = $tempVal;
return $returnVal;
}
pgraham
05-04-2006, 10:48 PM
to truncate down to the nearest accuracy step:$val = $accuracy*trunc($val/$accuracy);to round, add one half in the trunc:$val = $accuracy*trunc($val/$accuracy+0.5);
CGTalk Moderation
05-04-2006, 10:48 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2013, Jelsoft Enterprises Ltd.