Я хочу написать программу на 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-integers)? – PaulMcKenzie
Проблема в том, что числа с плавающей запятой являются приблизительными. '.258' не может быть представлен точно, внутри это что-то вроде' .25800000000000001' или '.25799999999999999'. – Barmar