C++ 如何获取前5个浮点数
所需输出: 前五个号码15555 实际产量: 前五个数字15.555555 如何获取5位数字并放弃小数点 例如: 123.43213->12343 1.5634567->15634C++ 如何获取前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 <
如果没有优雅、粗犷和圆润,你可能会:
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});