将任意十进制正小数分别转换成2,3,4,5,6,7,8,9进制正小数,小数点后保留8位,并输出。例如:若十进制小数为0.795,则输出:
十进制正小数 0.795000 转换成 2 进制数为: 0.11001011
十进制正小数 0.795000 转换成 3 进制数为: 0.21011011
十进制正小数 0.795000 转换成 4 进制数为: 0.30232011
十进制正小数 0.795000 转换成 5 进制数为: 0.34414141
十进制正小数 0.795000 转换成 6 进制数为: 0.44341530
十进制正小数 0.795000 转换成 7 进制数为: 0.53645364
十进制正小数 0.795000 转换成 8 进制数为: 0.62702436
十进制正小数 0.795000 转换成 9 进制数为: 0.71348853
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double n = scan.nextDouble();
for (int k = 2; k <= 9; k++)
vert(n, k);
}
private static void vert(double shu, int k) {
double n = shu;
int a[] = new int[8];
for (int i = 0; i < 8; i++) {
n *= k;
a[i] = (int) n;
if (n > 1)
n -= a[i];
}
String s = "";
for (int i = 0; i < 8; i++)
s += a[i];
System.out.println("十进制正小数" + String.format("%.6f", shu) + " 转换成" + k + "进制数为:0." + s);
}
}