Friday, December 10, 2010 at 12:01 AM.


on formatDouble (num, placesRightOfDecimal=3) {
		<<12/9/10; 12:34:17 PM by DW
			<<Changed the constant "00" to a string.filledstring. placesRightOfDecimal wasn't always a parameter, it was hardcoded to 3. Now the 0-padding has to allow for values other than 3.
		<<12/7/10; 5:47:04 PM by DW
			<<Send us a double and we'll send back a nicely formatted number without a huge number of places to the right of the decimal point. This code was being cribbed, it should be factored.
	local (s = string (num));
	if s contains "." {
		local (lod = string.nthfield (s, ".", 1));
		local (rod = string.nthfield (s, ".", 2) + string.filledstring ("0", placesRightOfDecimal - 1));
		if sizeof (rod) > placesRightOfDecimal {
			rod = string.mid (rod, 1, placesRightOfDecimal)};
		return (lod + "." + rod)}
	else {
		return (s)}}
<<bundle //test code
	<<dialog.alert (formatDouble (double (random (1, clock.ticks ())) / 1000, 7))

This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.