所以我有一個程序在不同的基礎上表示小數,並且由於它的性質,可能會顯示無限的小數位數。但是當我嘗試base 2並輸入.258時,它會給出01000010000011000100100110111010010111100011010101但在那裏停止,即使我確定它是重複小數。 重要的是要注意,程序不會存儲數字,而是在獲取它們後立即顯示個別數字,然後及時將它們忘記。這裏是代碼:錯誤地乘以
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, const char * argv[])
{
double a;
double b;
cout << "input base then input the decimal\n";
cin >> a >> b;
while (b) {
b*=a;
cout << int(b);
b-=floor(b);
}
}
查看GNU MPFR庫的高精度數字:http://www.mpfr.org/。 – Will
您沒有無限位數來編碼十進制值。因此截斷的結果。 –
*「我確定它是一個重複的小數點」*您說得對,它需要無限的位數來存儲。你在問爲什麼沒有使用無數位? –