Fallback to scientific notation when fixed-point is long
Fixed point output can create arbitrarily long string representations of floating points. When this happens, we would like to just represent the scientific notation to a limited precision Fixes https://gitlab.com/kicad/code/kicad/-/issues/17890
This commit is contained in:
parent
91f6c534b9
commit
24f02e72d0
|
@ -254,6 +254,11 @@ wxString SPICE_VALUE::ToString( const SPICE_VALUE_FORMAT& aFormat )
|
|||
mantissa *= std::pow( 10, scale - aFormat.Precision + 1 );
|
||||
|
||||
wxString res = wxString::FromCDouble( mantissa, std::max( 0, aFormat.Precision - scale - 1 ) );
|
||||
|
||||
// If we have an excessively long number, switch to scientific notation
|
||||
if( ssize_t( res.length() ) > aFormat.Precision + scale + 1 )
|
||||
res = wxString::FromCDouble( mantissa );
|
||||
|
||||
return res + range;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue