我想用C++與CIN十進制數的程序和cout十進制 後面的數字,例如0.26547 - > 5.如何查找小數點後的數字?
我寫了這一點,但無法正常工作:
int main()
{
int i=0,b;
float a ;
cin>>a ;
while(a!=0)
{
a*=10 ;
b=a ;
a-=b ;
i+=1 ;
}
cout<<i ;
}
例如爲0.258而不是3,返回20. 可以解釋我這個代碼的問題是什麼? 謝謝
https://docs.oracle.com/cd/E19957 -01/806-3568/ncg_goldberg.html – Lucero
[這是相同的作業問題](http://stackoverflow.com/questions/41197021/separating-decimal-points-into-two-整數)? – PaulMcKenzie
問題是浮點數是近似值。 '.258'不能完全表示,內部是'.25800000000000001'或'.25799999999999999'。 – Barmar