summaryrefslogtreecommitdiff
path: root/src/org/unitConverter/unit/LinearUnitValue.java
diff options
context:
space:
mode:
authorAdrien Hopkins <adrien.p.hopkins@gmail.com>2020-08-04 16:42:55 -0500
committerAdrien Hopkins <adrien.p.hopkins@gmail.com>2020-08-04 16:42:55 -0500
commit618b81da627b55dcb051d889c7faffd91804497a (patch)
treedce77e602783c43514a09a53ae82f06f65a13bc0 /src/org/unitConverter/unit/LinearUnitValue.java
parent77c7c962a6ed810b12685aa9ace4bd8a62761cea (diff)
Added scientific rounding.
Diffstat (limited to 'src/org/unitConverter/unit/LinearUnitValue.java')
-rw-r--r--src/org/unitConverter/unit/LinearUnitValue.java23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/org/unitConverter/unit/LinearUnitValue.java b/src/org/unitConverter/unit/LinearUnitValue.java
index 7096738..5685a6d 100644
--- a/src/org/unitConverter/unit/LinearUnitValue.java
+++ b/src/org/unitConverter/unit/LinearUnitValue.java
@@ -367,7 +367,7 @@ public final class LinearUnitValue {
final double baseUncertainty = this.unit.convertToBase(this.uncertainty);
// get rounded strings
- final String valueString, baseValueString, uncertaintyString,
+ String valueString, baseValueString, uncertaintyString,
baseUncertaintyString;
if (this.isExact()) {
valueString = Double.toString(this.value);
@@ -438,6 +438,27 @@ public final class LinearUnitValue {
return String.format("(%s ± %s) %s", valueString, uncertaintyString,
chosenName);
} else {
+ // truncate excess zeroes
+ if (valueString.contains(".")) {
+ while (valueString.endsWith("0")) {
+ valueString = valueString.substring(0, valueString.length() - 1);
+ }
+ if (valueString.endsWith(".")) {
+ valueString = valueString.substring(0, valueString.length() - 1);
+ }
+ }
+
+ if (baseValueString.contains(".")) {
+ while (baseValueString.endsWith("0")) {
+ baseValueString = baseValueString.substring(0,
+ baseValueString.length() - 1);
+ }
+ if (baseValueString.endsWith(".")) {
+ baseValueString = baseValueString.substring(0,
+ baseValueString.length() - 1);
+ }
+ }
+
if (primaryName.isEmpty() && symbol.isEmpty())
return String.format("%s unnamed unit (= %s %s)", valueString,
baseValueString, this.unit.getBase());