これは可能ではないかもしれませんが、私はそれが尋ねることを傷つけることはできないと考えました。 私は非整数小数を8進表記に変換する必要のあるプログラムを持っています。私が知る限り、Javaは自動的に整数の8進数を扱うことができます。私はクルージングの何かを一緒に敷き詰めました。これには数を8のべき乗に分解することが含まれています。Javaで非整数8進数を解析するにはどうすればよいですか?
.abcd = X *(1/8)+ Y×(1/64)+ Z *(1/512)+ ...... 0.xyz」として表示される
"それは意味をなさない場合。問題は、長い番号の丸め/切り捨てエラーが多く発生することです。これを行うより良い方法はありますか?
(編集) は、ここで私は小数点以下の桁を処理するために使用してきたアルゴリズムです:
double floatPartNum = Double.parseDouble("0." + temps[1]);
if (floatPartNum > 0) {
int p = 1;
result = result + ".";
while (floatPartNum > 0 && p < 16) {
double scale = 1/(Math.pow(8, p));
int modT = (int)(floatPartNum/scale);
result = result + modT;
double modScale = (double)modT * scale;
floatPartNum -= modScale;
p++;
}
}
ここで私が使用しているアルゴリズムです。ポイントの左側の部分は、それが整数であるかのように扱われているので、私は唯一のポイントの右側にある数字を扱う部分を含めています: – Leonide
おっと、私はリターンが ' ...物事を掲載押し忘れてしまいましたdouble floatPartNum = Double.parseDouble( "0。"+タン[1]); IF(floatPartNum> 0){ のint p = 1; 結果=結果+" ";。 一方(floatPartNum> 0 && P <16){ ダブルスケール= 1 /( Math.pow(8、P)); INT modT =(INT)(floatPartNum /スケール); 結果=結果+ modT; ダブルmodScale =(ダブル)modTの*スケール; floatPartNum - = modScale; P ++。 } } ' – Leonide