前提・実現したいこと
Cで10進数の小数をN進数に変換するプログラムを作っています。
発生している問題・エラーメッセージ
Nを2にするときには
.0011110101110000101000111101011100001010001111010111
と正解が出るのですが、
Nを5にするときには
.1044444444444444444…
と正解が出ません(正解は.11)。
該当のソースコード
C言語
#include <stdio.h>
int main(void){
int K = 0;
double R = 0.24; //実数
int N = 5; //N進数
printf(".");
while(R != 0){
K = R * N;
printf("%d", K);
R = R * N - K;
}
}
試したこと
K = (int)(R * N)のようにキャストをつかったが結果は改善しませんでした。
補足情報(FW/ツールのバージョンなど)
paiza.ioを使用
回答3件
あなたの回答
tips
プレビュー