jjzjj

浮点数

全部标签

c++ - 在用它执行算术时隐式地将对象转换为浮点类型

假设我们有一个全局对象pi,我们想根据上下文将其隐式转换为float或double。以下不起作用:#includeclassPi{public:Pi(){}operatorfloat()const{returnstd::atan(1.0f)*4.0f;}operatordouble()const{returnstd::atan(1.0)*4.0;}};constPipi;#include#includeintmain(){std::cout它不起作用的原因是编译器不知道它是否应该将pi隐式转换为float或double.但是,假设我们总是希望它在二元算术运算符中转换为另一个操作数的类型

C++ 模板 - 浮点型和整型的不同特化

我正在尝试编写一个带有如下签名的函数:templateTobar(Fromin){...}这个函数需要有不同的行为取决于ifTo是float型还是积分型。(假设From是整数且都是算术)这可以使用ifconstexpr(std::is_integral::value){...}else{...}轻松实现,但是我仅限于没有ifconstexpr的C++11.实现这种特化的好方法是什么? 最佳答案 您可以将模板重载与SFINAE一起使用.例如templatetypenamestd::enable_if::value,To>::typeb

我想在浮点值中显示离开持续时间

我创建了字段half_day_lowered在hr_leave_rules.pyfromodooimportmodels,fields,api,_classHRLeaveRules(models.Model):_name='hr_leave_rules.leave_rules'half_day_allowed=fields.Selection([('yes',"Yes"),('no',"No")],string="HalfDayAllowed",required=True)而且,我也继承了领域get_number_of_days申请的休假的计算是多少天和holday_status_id这表示离

C++:计算给定范围内可能的浮点值的数量

我正在开发一个加密应用程序,使用Crypto++作为此应用程序的一个晦涩部分,我需要确定在特定数值范围内可以存在的唯一浮点值的最大数量。显然在现实中0和1之间存在无穷多个数字-但并非所有数字都可以用唯一的浮点值表示。我有一个最小浮点值和一个最大浮点值。我需要确定此范围内可能的浮点值的数量。这很棘手,因为浮点值间隔得越远,离0越远。例如,0和1之间的可能浮点值的数量与100,000和100,001出于我的目的,我希望计数也包括最小值和最大值。但是生成独占计数的算法同样有用,因为我可以根据需要简单地添加1或2。其他问题:如果0在范围内怎么办?例如,如果最小值为-2.0,最大值为正2.0,我

c++ - 将浮点除法分解为整数和小数部分

我正在尝试使用double进行整数除法+模运算(用于基于样条的插值),但是在使用std::floor和std::fmod.我一直在使用下面的div1的等价物,但是在50时它产生了不正确的结果(也就是说,整数部分是3,但模数部分是除数减去epsilon)。div2有效但相当复杂。div3至少是一致的,但没有返回我想要的结果类型(余数可能是负数,所以在我可以使用它之前需要进一步的操作)。#include#includestd::pairdiv1(intnum,doubledenom){doublewhole=std::floor(num/denom);doubleremain=std::f

c++ 从 3 个浮点值生成 unordered_map 的键

我真的不明白:我正在读取二进制文件中的点,每个点都包含3个浮点值。将这些点保存在unordered_map中因此我尝试从这3个浮点值中创建一个键:初衷:只需使用确切的位作为key:unordered_map>points;stringvecToKey(float*a){charbytes[12];memcpy(bytes,a,12);returnstring(bytes);}关键是我绝对想用这种方式消除相同的点但是在一个示例项目中读取了大约21374点map结果大小=10640点使用以下方法作为key创建会产生正确的结果共10687点stringvec3ToKey(floata[3])

java - 如何在浮点二进制中查看数字表示

例如,我有数字0.1:doublen=0.1;它在IEEE-754bigendian中表示为:0011111110111001100110011001100110011001100110011001100110011010如何以这种二进制格式输出0.1? 最佳答案 Float类可以为您调用方法Float.floatToIntBitsfinalintintBits=Float.floatToIntBits(4.1f);finalStringbinary=Integer.toBinaryString(intBits);System.ou

c++ - 什么是非时间流加载固有 (_mm256_stream_load_si256) 的浮点 (__m256d) 版本?

在AVX/AVX2中我只能找到_mm256_stream_load_si256(),用于__m256i。没有办法流式加载__m256d吗?为什么?(我想在不污染CPU缓存的情况下加载它)做下面的(aggressivecasting)有什么障碍吗?__m256d*pDest=/*...*/;__m256d*pSrc=/*...*/;/*...*/const__m256iiWeight=_mm256_stream_load_si256(reinterpret_cast(pSrc));const__m256dprior=_mm256_div_pd(*reinterpret_cast(&iWe

c++ - 浮点格式和 isinf()

我目前正在处理C++中的浮点值。考虑以下C++片段:#include#include#includeintmain(){longdoublenum;//Setnumtoalarge,valid,floatingpointvaluememset(&num,0xcc,sizeof(num));std::cout根据Wikipedia,这会创建一个80位extendedprecision浮点值,因为我在x86机器上使用GCC。因此,浮点值是0xcccccccccccccccccccc,应该是有效值。有趣的是,输出如下:num=-4.77987e+986isinf(num)=1std::isi

c++ - 颜色的浮点 RGB 值与 ubyte RGB 值

(ubyte是无符号字符)例如,在颜色类中使用浮点值作为RGB值有什么意义?它提供更高的准确性吗?空间呢?使用float与ubyte的性能优势/障碍是什么? 最佳答案 临:做数学时不需要与float相互转换在顺序应用多个处理步骤时更准确地保留中间值具有多更大的动态范围和分辨率float是GPU等的自然格式缺点:需要更多存储空间 关于c++-颜色的浮点RGB值与ubyteRGB值,我们在StackOverflow上找到一个类似的问题: https://stack