SC: Fixed Number of Decimals
2019-04-23 11:46
supercollider
Here's a quick function for displaying float numbers as strings in SuperCollider.
(
~fixDec= {|val, numDecimals= 2| //float to string with fixed number of decimals
var str= val.round(0.1**numDecimals).asString;
var num= str.size-str.indexOf($.)-1;
str.extend(str.size+numDecimals-num, $0);
};
)
//test examples
~fixDec.value(0.1, 3)
-> 0.100
~fixDec.value(0.12345, 3)
-> 0.123
//rounds internally. compare:
~fixDec.value(0.191, 2)
-> 0.19
~fixDec.value(0.197, 2)
-> 0.20
//can deal with negative values
~fixDec.value(-2pi, 4)
-> -6.2832
//and integers
~fixDec.value(10000, 4)
-> 10000.0000
~fixDec.value(10000, 0)
-> 10000.
Note: It does not play well with exponential notation
~fixDec.value(1e-4, 5)
-> 0.00010
~fixDec.value(1e-5, 5)
//error