more unit fallout

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2025-12-05 09:51:15 -07:00
parent 8b8b86bb66
commit e8c7a6541b
4 changed files with 14 additions and 14 deletions

View File

@ -42,7 +42,7 @@ public:
void operator=(const Unit &unit);
float scale() const { return scale_; }
void setScale(float scale);
const char *scaleAbbreviation() const;
std::string scaleAbbreviation() const;
const char *suffix() const { return suffix_.c_str(); }
// scale abbreviation + suffix
const char *scaledSuffix() const { return scaled_suffix_.c_str(); }

View File

@ -87,27 +87,27 @@ Unit::setScale(float scale)
setScaledSuffix();
}
const char *
std::string
Unit::scaleAbbreviation() const
{
if (fuzzyEqual(scale_, 1E+6))
return "M";
return "1M";
else if (fuzzyEqual(scale_, 1E+3))
return "k";
return "1k";
if (fuzzyEqual(scale_, 1.0))
return "";
return "1";
else if (fuzzyEqual(scale_, 1E-3))
return "m";
return "1m";
else if (fuzzyEqual(scale_, 1E-6))
return "u";
return "1u";
else if (fuzzyEqual(scale_, 1E-9))
return "n";
return "1n";
else if (fuzzyEqual(scale_, 1E-12))
return "p";
return "1p";
else if (fuzzyEqual(scale_, 1E-15))
return "f";
return "1f";
else
return "?";
return stdstrPrint("%.1e", scale_);
}
void

View File

@ -122,7 +122,7 @@ define_cmd_args "report_units" {}
proc report_units { args } {
check_argc_eq0 "report_units" $args
foreach unit {"time" "capacitance" "resistance" "voltage" "current" "power" "distance"} {
report_line " $unit 1[unit_scaled_suffix $unit]"
report_line " $unit [unit_scaled_suffix $unit]"
}
}
@ -167,7 +167,7 @@ proc set_unit_values { unit key suffix key_var } {
set arg_suffix [string range $value end-[expr $suffix_length - 1] end]
if { [string match -nocase $arg_suffix $suffix] } {
set arg_prefix [string range $value 0 end-$suffix_length]
if { [regexp "^(10*\.?0*)?(\[Mkmunpf\])?$" $arg_prefix ignore mult prefix] } {
if { [regexp "^(10*\\\.?0*)?(\[Mkmunpf\])?$" $arg_prefix ignore mult prefix] } {
#puts "$arg_prefix '$mult' '$prefix'"
if { $mult == "" } {
set mult 1

View File

@ -415,7 +415,7 @@ set_cmd_unit_suffix(const char *unit_name,
}
}
const char *
std::string
unit_scale_abbreviation (const char *unit_name)
{
Unit *unit = Sta::sta()->units()->find(unit_name);