I do agree with the change, seems three digits of precision is indeed 
unnecessary, will apply it. 

Thanks, 
Anton

-------- Original message --------
From: Jean Delvare <[email protected]> 
Date:  
To: [email protected] 
Cc: Anton Arapov <[email protected]> 
Subject: [dmidecode] Memory voltage values 
 
Since SMBIOS 2.8.0, dmidecode can display memory voltage values. Values
are stored in mV and the code currently uses %.3f to print the value in
volts. This means that the standard DDR3 voltage would be displayed as
"1.500 V". 3 decimal places seem a bit overkill in most situations. I
think "1.5 V" would look better and be closer to what the reader would
expect. So I'd rather use %g so that the trailing 0s are omitted. The
only problematic corner case would be multiples of 1000, which would be
printed as "1 V", "2 V" etc. which is a bit rough and unexpected. So I
would force one decimal for these.

This can be easily achieved with the following code change:

--- dmidecode.orig/dmidecode.c  2013-04-23 16:41:14.844319737 +0200
+++ dmidecode/dmidecode.c       2013-04-23 21:50:04.320649702 +0200
@@ -2236,7 +2236,7 @@ static void dmi_memory_voltage_value(u16
if (code == 0)
printf(" Unknown");
else
-        printf(" %.3f V", (float)code / 1000);
+        printf(code % 100 ? " %g V" : " %.1f V", (float)code / 1000);
}

static const char *dmi_memory_device_form_factor(u8 code)

Anton, what do you think?

-- 
Jean Delvare

_______________________________________________
https://lists.nongnu.org/mailman/listinfo/dmidecode-devel
_______________________________________________
https://lists.nongnu.org/mailman/listinfo/dmidecode-devel

Reply via email to