Open KEClaytor opened 1 year ago
Here is perhaps an even more reduced example:
from pint import UnitRegistry
ureg = UnitRegistry(autoconvert_offset_to_baseunit=True)
ureg.define('decibelvoltperampere = volt/ampere; logbase: 10; logfactor: 10 = dBvoltperampere = dBVperA')
C = 1 * ureg.V/ureg.A
dB_C = C.to(ureg.dBVperA)
print(C, dB_C)
1.0 volt / ampere 29.999999999999996 decibelvoltperampere
I'm looking at defining custom log units. These seem to work fine when converting in isolation (I can convert between the base units and the dB units back and forth all day). However, when the log units consist of mixed base units, it seems to be off by a factor of 1e3 (30dB) for db units that are defined as divide or multiplies.
Yields the output:
Instead of the expected
0 decibelvoltperampere
and0 decibelvoltampere
.This is related to #1160, ideally I would like to just subtract the two log values and have a result of mixed log units
0 dBV - 0 dBA = 0 dB(V/A)
.This has the same results if you call the to_base_units as well:
A_div_B.to_base_units().to("dBVperA")
Edit: tried with multiply as well. Edit 2: adding results with
to_base_units()
Edit3: version:
Edit 4: Updated to v'0.22' and still having the issue.