static void handle_flags(struct sr_datafeed_analog *analog, float *floatval,
int *exponent, const struct dtm0660_info *info)
{
+ int initial_exponent = *exponent;
+
/* Factors */
if (info->is_nano)
*exponent -= 9;
*exponent += 3;
if (info->is_mega)
*exponent += 6;
- *floatval *= powf(10, *exponent);
+ *floatval *= powf(10, (*exponent - initial_exponent));
/* Measurement modes */
if (info->is_volt) {
int ret, exponent = 0;
struct dtm0660_info *info_local;
- info_local = (struct dtm0660_info *)info;
+ info_local = info;
if ((ret = parse_value(buf, floatval, &exponent)) != SR_OK) {
sr_dbg("Error parsing value: %d.", ret);