Just a quick post of a potentially useful function for LoadRunner.
LoadRunner has lr_save_int() and lr_save_string() but the float saving function is missing so I just quickly whipped up the following code. It’s by no means perfect when it comes to checking for errors, but it will work >90% of the times (as long as the scripter knows what he/she is doing).. Enjoy.
Code:
void lr_save_float(const float value, const char *param, const int decimals)
// ----------------------------------------------------------------------------
// Saves a float into a lr variable, much like lr_save_int() saves an integer
//
// Parameters:
// value Float value to store
// param Loadrunner variable name
// decimals Number of decimals in the result string
//
// Returns:
// N/A
//
// Example:
// lr_save_float(123.456, "myVar", 2); // myVar = 123.46 (includes rounding)
//
// ----------------------------------------------------------------------------
{
char buf[64]; // if more>63 digits -> your problem <img src="http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley">
char formatbuf[16]; // 16 chars should be adequate
sprintf( formatbuf, "%%.%df", decimals); // Build the "%?.f" format string
sprintf( buf, formatbuf, value); // sprintf the value
lr_save_string( buf, param); // store in variable
}