46 lines
1.3 KiB
Java
46 lines
1.3 KiB
Java
package sum;
|
|
|
|
/**
|
|
* @author Nikita Doschennikov (me@fymio.us)
|
|
*/
|
|
public class SumDoubleHex {
|
|
|
|
public static void main(String[] args) {
|
|
double res = 0;
|
|
for (String arg : args) {
|
|
StringBuilder builder = new StringBuilder();
|
|
boolean containsDot = false;
|
|
for (char c : arg.toCharArray()) {
|
|
if (!Character.isWhitespace(c)) {
|
|
builder.append(c);
|
|
if (c == '.') {
|
|
containsDot = true;
|
|
}
|
|
} else {
|
|
res += compute(builder.toString(), containsDot);
|
|
containsDot = false;
|
|
builder = new StringBuilder();
|
|
}
|
|
}
|
|
res += compute(builder.toString(), containsDot);
|
|
}
|
|
System.out.println(res);
|
|
}
|
|
|
|
static double compute(String num, boolean containsDot) {
|
|
double res = 0;
|
|
if (num.isEmpty()) {
|
|
res += 0;
|
|
} else if (
|
|
num.charAt(0) == '0' &&
|
|
(num.charAt(1) == 'x' || num.charAt(1) == 'X')
|
|
) {
|
|
res += (containsDot) ? Double.parseDouble(num) : Long.decode(num);
|
|
} else {
|
|
res += Double.parseDouble(num);
|
|
}
|
|
|
|
return res;
|
|
}
|
|
}
|