C++ C++;stof函数转换为整数 #包括 int main() { int val=std::stof(“4.99”)*100; std::cout
到C++ C++;stof函数转换为整数 #包括 int main() { int val=std::stof(“4.99”)*100; std::cout,c++,string,casting,int,C++,String,Casting,Int,到4.99最近的IEEE754float是4.989997711181640625std::stof将返回后者 乘以100的是498.999969482421875,它被截断为498 这恐怕是浮点运算的一个陷阱;在使用不连续函数(如将float转换为int)时,需要非常小心;在特定情况下,对结果使用std::lrund) 进一步阅读:使用适当的函数将浮点数正确四舍五入: #include <iostream> int main() { int val = std::st
4.99
最近的IEEE754float
是4.989997711181640625
std::stof
将返回后者
乘以100
的是498.999969482421875
,它被截断为498
这恐怕是浮点运算的一个陷阱;在使用不连续函数(如将float
转换为int
)时,需要非常小心;在特定情况下,对结果使用std::lrund
)
进一步阅读:使用适当的函数将浮点数正确四舍五入:
#include <iostream>
int main()
{
int val = std::stof("4.99") * 100;
std::cout << val;
return 0;
}
#包括
#包括
int main()
{
自动val=std::lround(std::stof(“4.99”)*100);
std::没错。从你的评论中查到了。对盗窃罪投了赞成票。根本没有pb;)
#include <cmath>
#include <iostream>
int main()
{
auto val = std::lround(std::stof("4.99") * 100);
std::cout << val;
return 0;
}