Handle numbers in Hexadecimal (0x#) and Binary (0b#) Notation (#318)

This commit is contained in:
willies952002
2021-08-29 19:20:25 -04:00
committed by GitHub
parent 533f3956a3
commit 38b45d7651
@@ -466,11 +466,17 @@ public final class ACFUtil {
public static Number parseNumber(String num, boolean suffixes) {
ApplyModifierToNumber applyModifierToNumber = new ApplyModifierToNumber(num, suffixes).invoke();
num = applyModifierToNumber.getNum();
double mod = applyModifierToNumber.getMod();
if (ACFPatterns.getPattern("^0x([0-9A-Fa-f]*)$").matcher(num).matches()) {
return Long.parseLong(num.substring(2), 16);
} else if (ACFPatterns.getPattern("^0b([01]*)$").matcher(num).matches()) {
return Long.parseLong(num.substring(2), 2);
} else {
ApplyModifierToNumber applyModifierToNumber = new ApplyModifierToNumber(num, suffixes).invoke();
num = applyModifierToNumber.getNum();
double mod = applyModifierToNumber.getMod();
return Double.parseDouble(num) * mod;
return Double.parseDouble(num) * mod;
}
}
public static BigDecimal parseBigNumber(String num, boolean suffixes) {