float number=15.555555;
printf("FIRST FIVE NUMBERS%f",number);
所需的输出:
FIRST FIVE NUMBERS15555
实际输出:
FIRST FIVE NUMBERS15.555555
如何获取5位数字并丢弃小数点?
例如:
123.43213 - > 12343
1.5634567 - > 15634
答案 0 :(得分:1)
没有优雅,有些蛮力和四舍五入,你可能会这样做:
#include <cmath>
#include <iostream>
int main()
{
double number = 15.555555;
while(100000 <= number) number /= 10;
while(number < 10000) number *= 10;
// 10000.x <= number < 100000
number = round(number);
if(100000 <= number) number = round(number/10);
std::cout << number << '\n';
}
注意:仅适用于大于零的数字。
答案 1 :(得分:0)
您可以随时执行以下操作:
cout << "FIRST FIVE NUMBERS" << to_string(15.555555).substr(0, 5);
那不圆或其他任何东西,但也许它是你想要的?
修改强>
根据Lightness Races in Orbit的评论,我认为可以从以下网址获得所需的结果:
string foo = to_string(15.555555);
for_each(foo.begin(), advance(foo.begin(), min(5, foo.size())), [](const char& i){if(i != '.')cout << i});