Getting the number of decimal places: Difference between revisions

Content added Content deleted
Line 97: Line 97:
12.345556 has 14 decimals
12.345556 has 14 decimals
1234500000000000060751116919315055127939946206157864960.000000 has 0 decimals</pre>
1234500000000000060751116919315055127939946206157864960.000000 has 0 decimals</pre>

=={{header|C++}}==
{{trans|C}}
<lang cpp>#include <iomanip>
#include <iostream>
#include <sstream>

int findNumOfDec(double x) {
std::stringstream ss;
ss << std::fixed << std::setprecision(14) << x;

auto s = ss.str();
auto pos = s.find('.');
if (pos == std::string::npos) {
return 0;
}

auto tail = s.find_last_not_of('0');

return tail - pos;
}

void test(double x) {
std::cout << x << " has " << findNumOfDec(x) << " decimals\n";
}

int main() {
test(12.0);
test(12.345);
test(12.345555555555);
test(12.3450);
test(12.34555555555555555555);
test(1.2345e+54);
return 0;
}</lang>
{{out}}
<pre>12 has 0 decimals
12.345 has 3 decimals
12.3456 has 12 decimals
12.345 has 3 decimals
12.3456 has 14 decimals
1.2345e+54 has 0 decimals</pre>


=={{header|Go}}==
=={{header|Go}}==