It seems LayoutValues.ApproximateScreenSize is calculated from LayoutValues.Width, LayoutValues.Height and LayoutValues.Scale
Math.sqrt(Math.pow(Width / Scale, 2) + Math.pow(Height / Scale, 2) / 160
I've tried this on all six of my Android devices and the Width and Height values appear to be accurate for the display area but the Scale value, which is supposed to be relative to 160dpi, appears to be an oddly rounded approximation. On a 6.9 inch Xiaomi Mi Max 3 the scale is reported as 2.75 whereas the actual scale is 2.19. This gives an ApproximateScreenSize of 5.22 which is obviously far too small. I can't see where the Scale values comes from but it seems to be totally unreliable as a real world value as on all six of my devices it is way off the actual dpi value of the screen. In one case nearly half of the actual value!
I've tried your ExactSize calculation on three of my devices and the dpis returned by getDisplayMetrics seem accurate and so therefore is the ExactSize calculation.
I guess that your customer's Huawei p20 mate pro must be either, as Erel suggested, be returning the wrong dpi values in getDisplayMetrics or the wrong width and height in GetDeviceLayoutValues.
Theoretically the most accurate way of getting the display size should be using the dpi, width and height values values from getDisplayMetrics which are documented to be the exact values.
Dim r As Reflector
r.Target = r.GetContext
r.Target = r.RunMethod("getResources")
r.Target = r.RunMethod("getDisplayMetrics")
Dim xdpi As Double = r.GetField("xdpi")
Dim ydpi As Double = r.GetField("ydpi")
Dim xpix As Int = r.GetField("widthPixels")
Dim ypix As Int = r.GetField("heightPixels")
Log("DisplayMetrics xdpi x ydpi = " & xdpi & " x " & ydpi)
Log("DisplayMetrics width x height = " & xpix & " x " & ypix)
Dim size As Double = Sqrt(Power(xpix / xdpi, 2) + Power(ypix / ydpi, 2))
Log("ExactSize = " & size)