Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
将浮子施法到int不一致 使用C++,我尝试使用这些指令将浮点< /COD>值转换成 int : #include <iostream> int main() { float NbrToCast = 1.8f; int TmpNbr = NbrToCast * 10; std::cout << TmpNbr << "\n"; } #包括 int main(){ 浮动NbrToCast=1.8f; int TmpNbr=NbrToCast*10; 正如Yuushi在评论中所说,我想每个编译器的舍入规则可能不同。在这样一个主题上有一个可移植的解决方案可能意味着你需要编写自己的舍入方法_C++_Casting_Floating Point - Fatal编程技术网

将浮子施法到int不一致 使用C++,我尝试使用这些指令将浮点< /COD>值转换成 int : #include <iostream> int main() { float NbrToCast = 1.8f; int TmpNbr = NbrToCast * 10; std::cout << TmpNbr << "\n"; } #包括 int main(){ 浮动NbrToCast=1.8f; int TmpNbr=NbrToCast*10; 正如Yuushi在评论中所说,我想每个编译器的舍入规则可能不同。在这样一个主题上有一个可移植的解决方案可能意味着你需要编写自己的舍入方法

将浮子施法到int不一致 使用C++,我尝试使用这些指令将浮点< /COD>值转换成 int : #include <iostream> int main() { float NbrToCast = 1.8f; int TmpNbr = NbrToCast * 10; std::cout << TmpNbr << "\n"; } #包括 int main(){ 浮动NbrToCast=1.8f; int TmpNbr=NbrToCast*10; 正如Yuushi在评论中所说,我想每个编译器的舍入规则可能不同。在这样一个主题上有一个可移植的解决方案可能意味着你需要编写自己的舍入方法,c++,casting,floating-point,C++,Casting,Floating Point,因此,在您的情况下,您可能需要检查7后面数字的值,并增加值或不增加值。例如: int main() { float NbrToCast = 1.8f; float TmpNbr = NbrToCast * 10; std::cout << RoundingFloatToInt(TmpNbr) << "\n"; } int RoundingFloatToInt(const float &val) { float intPart, fra

因此,在您的情况下,您可能需要检查7后面数字的值,并增加值或不增加值。例如:

int main() {
    float NbrToCast = 1.8f;
    float TmpNbr = NbrToCast * 10;
    std::cout << RoundingFloatToInt(TmpNbr) << "\n";
}

int RoundingFloatToInt(const float &val)
{
  float intPart, fractPart;
  fractpart = modf (val, &intpart);
  int result = intPart;
  if (fractpart > 0.5) 
  {
    result++;
  }
  return result;
}
intmain(){
浮动NbrToCast=1.8f;
浮动TmpNbr=NbrToCast*10;

std::cout see尝试将最后一行更改为
std::cout@RichardCritten:
TmpNbr
int
,那么
std::precision(20)
的意义是什么?有许多IEEE-754;可能每个编译器使用的默认值不同。尝试设置舍入模式()看看会发生什么?@Yuushi比取整模式的差异更有可能是
FLT\u EVAL\u方法的值差异。