Matt McCutchen's Web Site
/
measurements
/
measurements.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Various fixes and enhancements:
[measurements/measurements.git]
/
src
/
net
/
mattmccutchen
/
measurements
/
Measurement.java
diff --git
a/src/net/mattmccutchen/measurements/Measurement.java
b/src/net/mattmccutchen/measurements/Measurement.java
index
1ddaa50
..
0e88986
100644
(file)
--- a/
src/net/mattmccutchen/measurements/Measurement.java
+++ b/
src/net/mattmccutchen/measurements/Measurement.java
@@
-23,9
+23,11
@@
public class Measurement {
int space = str.indexOf(' ');
String numPart;
String unitPart;
int space = str.indexOf(' ');
String numPart;
String unitPart;
+ boolean forceExact = false;
if (space == -1) {
numPart = str;
unitPart = "";
if (space == -1) {
numPart = str;
unitPart = "";
+ forceExact = true;
} else {
numPart = str.substring(0, space);
unitPart = str.substring(space + 1);
} else {
numPart = str.substring(0, space);
unitPart = str.substring(space + 1);
@@
-33,11
+35,13
@@
public class Measurement {
double num;
double unc;
if (numPart.charAt(numPart.length() - 1) == exactIndicator) {
double num;
double unc;
if (numPart.charAt(numPart.length() - 1) == exactIndicator) {
+ forceExact = true;
numPart = numPart.substring(0, numPart.length() - 1);
numPart = numPart.substring(0, numPart.length() - 1);
+ }
+ num = Double.parseDouble(numPart);
+ if (forceExact)
unc = 0;
unc = 0;
- num = Double.parseDouble(numPart);
- } else {
- num = Double.parseDouble(numPart);
+ else {
// Determine sig figs
int echar = numPart.indexOf('e');
if (echar == -1) {
// Determine sig figs
int echar = numPart.indexOf('e');
if (echar == -1) {
@@
-113,7
+117,7
@@
public class Measurement {
}
private static double expOf(double d) {
}
private static double expOf(double d) {
- return (d == 0) ? 0 : Math.floor(Math.log10(
d
));
+ return (d == 0) ? 0 : Math.floor(Math.log10(
Math.abs(d)
));
}
private static int sigFigsOf(double num, double unc) {
}
private static int sigFigsOf(double num, double unc) {