草庐IT

float_exception

全部标签

c++ - 与 std::current_exception 关联的数据的生命周期

考虑以下代码:std::exception_ptreptr{std::current_exception()};constchar*msg=0;try{if(eptr!=std::exception_ptr{}){std::rethrow_exception(eptr);}}catch(conststd::exception&ex){msg=ex.what();}我可以在catch之外使用msg吗?换句话说,ex是否引用与eptr相同的异常实例?谢谢! 最佳答案 rethrow_exception的描述说:Throws:theexc

c++ - 使用 __float128 编译 C++ 代码

我正在尝试在我的C++程序中使用__float128。但是我在编译它时遇到了麻烦。这是简单的C++代码(test.cc):#include#includeusingnamespacestd;intmain(){__float128r=0.0q;__float128exp_d=expq(12.45q);cout然后我用编译这段代码g++test.cc-lquadmath-std=c++11出现以下错误错误:无法找到数字文字运算符'operateor""q'我该如何解决? 最佳答案 Gcc-5打印出这个有用的附加说明:note:use-

c++ - 最小 float (最接近零)

我试图找到可以存储在单个精度float中的最小值(最接近零)。使用header我可以获得这个值,但是如果我把它变得更小,float仍然可以容纳它并且它会给出正确的结果。这是一个测试程序,用g++5.3.0编译。#include#include#includeusingnamespacestd;intmain(){floata=numeric_limits::max();floatb=numeric_limits::min();a=a*2;b=b/pow(2,23);cout如我所料,“a”给出无穷大,但“b”即使在将最小值除以2^23后仍保持良好结果,之后它给出0。给出numeric_

c++ - 按位将 uint32_t 强制转换为 C/C++ 中的 float

我正在从网络接收缓冲区,该缓冲区已转换为32位字数组。我有一个词被我的接口(interface)文档定义为IEEE-754float。我需要从缓冲区中提取这个词。在不调用转换的情况下很难从一种类型转换为另一种类型。这些位已经符合IEEE-754浮点标准,我不想重新安排任何位。我的第一个尝试是将uint32_t的地址转换为void*,然后将void*转换为float*,然后解引用为float:floatieee_float(uint32_tf){return*((float*)((void*)(&f)));}error:dereferencingtype-punnedpointerwil

c++ - 使用 C/C++ 高效反序列化由 float 、标记和空行组成的字符串

我有类似于以下内容的大字符串...some_text_token24.325973-20.638823-1.9643660.753947-1.290811-3.5474220.813014-3.5472270.4720153.723311-0.7191163.676793other_text_token24.32597320.638823-1.9643660.753947-1.290811-3.547422-1.996611-2.8774220.813014-3.5472271.6323652.0836730.4720153.723311-0.7191163.676793......从

c++ - 如何在 C++ 中将字符串转换为 complex<float>?

如何轻松地将包含两个用逗号分隔的float的字符串转换为复数?例如:strings="123,5.3";//inputcomplexc(123,5.3);//output/whatIneed有没有比拆分字符串更简单/更快的方法,读取两个值并返回complex? 最佳答案 只需添加括号,默认的operator>>就会为您完成:#include#include#include#includeintmain(){std::strings="123,5.3";//inputstd::istringstreamis('('+s+')');st

c++ - 错误 - C++ 中的 "throws different exceptions"

我收到一个错误提示error:declarationof'virtualFXHost::~FXHost()'throwsdifferentexceptionserror:thanpreviousdeclaration'virtualFXHost::~FXHost()throw()'我不确定如何开始解决这个问题,我以前从未遇到过。在我的.h中我有:public:virtual~FXHost()throw();在我的.cpp中我有:FXHost::~FXHost(){gHost=NULL;}感谢指点。 最佳答案 函数声明末尾的throw

c++ - 如何阻止大 float 以指数形式输出。 (科学计数法?)

我有一个计算人口增长的程序。它似乎在工作,但在人口超过100万之后,它会以十进制数的十次方输出。(这叫科学记数法吗?指数形式?我忘记了。)有没有办法把数据输出为一个完整的数字?这是我必须转换它的输出代码。#include"header.h"voidoutput(floatcurrentPopulation,floatyears,floatbirthRate,floatdeathRate){cout新代码:#include"header.h"voidoutput(floatcurrentPopulation,floatyears,floatbirthRate,floatdeathRate

c++ - 将 std::exception 转换为 EXCEPTION_POINTERS

我可能完全误解了如何使用GoogleBreakpadAPI,如果是这种情况,我愿意接受评论/建议/粗鲁的评论。我正在尝试调用以下C++函数:boolWriteMinidumpForException(EXCEPTION_POINTERS*exinfo);我有一个对std::exception的引用:try{returnQApplication::notify(receiver,event);}catch(std::exception&ex){eh_.WriteMinidumpForException(?????);//...dosomemorestuffandultimatelykil

c++ - Float32 和 UInt32?

我正在查看一些旧的C++Apple代码,我熟悉float但不熟悉Float32和Uint32类型,它们与标准float和int相同吗?谢谢 最佳答案 UInt32是一个32位(4字节)无符号整数。这意味着它可以表示范围内的值[0,2^32-1](=[0,4294967295])。Float32是一个32位的(又名single-precision[对比double-precision])floatingpointnumber.正如其他答案所提到的,类型的存在是为了保证宽度。 关于c++-F