Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何获取前5个浮点数_C++_Floating Point_Tostring - Fatal编程技术网

C++ 如何获取前5个浮点数

C++ 如何获取前5个浮点数,c++,floating-point,tostring,C++,Floating Point,Tostring,所需输出: 前五个号码15555 实际产量: 前五个数字15.555555 如何获取5位数字并放弃小数点 例如: 123.43213->12343 1.5634567->15634 如果没有优雅、粗犷和圆润,你可能会: float number=15.555555; printf("FIRST FIVE NUMBERS%f",number); #包括 #包括 int main() { 双倍数字=15.5555; 而(100000你总是可以这样做: #include <

所需输出:

前五个号码15555

实际产量:

前五个数字15.555555

如何获取5位数字并放弃小数点

例如:

123.43213->12343

1.5634567->15634


如果没有优雅、粗犷和圆润,你可能会:

float number=15.555555;
printf("FIRST FIVE NUMBERS%f",number); 
#包括
#包括
int main()
{
双倍数字=15.5555;

而(100000你总是可以这样做:

#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';
}

cout你到底在问什么?问题不清楚。你真的想打印15555吗?不是15.555吗?@Trent问题很清楚,你只是累了。你想
15555
还是
15.555
作为输出?请编辑你的问题。如果你没有5位数字,例如15,怎么办?@Columbo我相信这是个好问题。哈哈我已经编辑了它,希望看到它重新打开。去掉小数点,你就在那里。@LightnessRacesinOrbit这就是他想要的吗?他好像刚用了%f,所以打印整个内容?哈,我今天早上从你的答案中学到了这一点!根据问题中的两个例子,是的。对不起,我不确定这是什么意思morning@LightnessRacesinOrbit Ah将其理解为一个美国逗号:1000000好吧,当它四舍五入我的数字时,最后一位数字(5)更改为6…因此,我得到的是15556://@user3751721,而不是15555,您可以使用“trunc”instead@DieterL你可能应该检查数字是否大于1。如果不是的话,这个解决方案会很难被破坏。@JonathanMee我看不出来,但是一个负数(零)确实是数字!@DieterLücking是的,很抱歉,该读数大于0。
cout << "FIRST FIVE NUMBERS" << to_string(15.555555).substr(0, 5);
string foo = to_string(15.555555);

for_each(foo.begin(), advance(foo.begin(), min(5, foo.size())), [](const char& i){if(i != '.')cout << i});