【发布时间】:2019-08-14 17:03:45
【问题描述】:
我想将源基数转换为目标基数,但我遇到了分数问题。当我尝试将 10.234 (base10) 转换为 base 7 = 13.14315 时,它工作得很好,或者 aaaaa.0 (base16) 到 base 24 = 22df2 它也有效。
但是当我尝试将 aaaaa.cdefb0 (base16) 转换为 base 24 = 22df2.j78da 时,它不起作用。我无法计算分数部分,我得到22df2 作为答案
我的基本转换代码:
private static String baseConversion(String number,
int sBase, int dBase) {
return Long.toString(
Long.parseLong(number, sBase),
dBase);
}
我的分数转换代码:
private static String fractionConversion(double fraction, int dBase) {
StringBuilder output = new StringBuilder(".");
for (int i = 0; i < PRECISION; i++) {
fraction *= dBase;
output.append(Long.parseLong(Integer.toString((int) fraction)));
fraction -= Long.parseLong(Integer.toString((int) fraction));
}
return output.toString();
}
【问题讨论】:
-
aaaaain base 16 是 699050 in base 10 -
@Rogue 好的,但我对此没意见
标签: java base-conversion