草庐IT

c++ - 启用优化的不同浮点结果 - 编译器错误?

以下代码适用于VisualStudio2008,无论是否经过优化。但它只适用于没有优化的g++(O0)。#include#include#includedoubleround(doublev,doubledigit){doublepow=std::pow(10.0,digit);doublet=v*pow;//std::cout输出应该是:4.54.6但是经过优化的g++(O1-O3)会输出:4.54.5如果我在t之前添加volatile关键字,它可以工作,那么可能存在某种优化错误?在g++4.1.2和4.4.4上测试。这是ideone上的结果:http://ideone.com/Rz

c++ - 为什么我不能使用浮点值作为模板参数?

当我尝试使用float作为模板参数时,编译器会为此代码哭泣,而int工作正常。是因为我不能使用float作为模板参数吗?#includeusingnamespacestd;templateclassGenericClass{private:Tvalue;public:GenericClass(){value=defaultValue;}TreturnVal(){returnvalue;}};intmain(){GenericClassgcInteger;GenericClassgcFlaot;cout错误:main.cpp:Infunction`intmain()':main.cpp:

objective-c - 如何四舍五入浮点值?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:RoundingnumbersinObjective-C在Objective-c中如何对浮点值进行四舍五入? 最佳答案 除了其他答案:floattheFloat=1.23456;introunded=roundf(theFloat);NSLog(@"%d",rounded);introundedUp=ceil(theFloat);NSLog(@"%d",roundedUp);introundedDown=floor(theFloat);NSLog(@"%d"

python - 狮身人面像浮点格式

我正在使用Sphinx从代码生成文档。有谁知道是否有办法控制从默认参数生成的float的格式。例如,如果我有以下功能:deff(x=0.97):returnx+1生成的文档最终看起来像:foo(x=0.96999999999997)显然这是一个浮点精度问题,但是有没有办法让文档看起来不那么难看? 最佳答案 您可以使用..autofunction::指令覆盖函数签名。因此,为了解决您的示例,在模块bar中定义为foo(x=0.97)的函数:..automodule::bar..autofunction::foo(x=0.97)生成的文

floating-point - 如何用前导零填充 Fortran 浮点输出?

我有一些float需要从Fortran程序中输出。假设最大数字可能是999.9999,它们都是非负数。我需要在所有小于100的数字前面补零。例如,如果我有25.6893782、245.354567和1.2345678,我需要以类似的形式将它们打印出来025.6894245.3546001.2346我该怎么做?例如,如果我知道所有的数字都在10到99之间,那么使用T编辑描述符会相当容易。但我无法提前知道这一点。 最佳答案 这对我有用real::areal然后write(*,'(i3.3,f0.6)')int(areal),areal-

减法时PHP浮点计算错误

我有一个非常奇怪的问题。如果我减去2个浮点变量,其中一个是数学运算的结果,我会得到一个错误的值。例子:var_dump($remaining);var_dump($this->hours_sub['personal']);echo$remaining-$this->hours_sub['personal'];这是输出:float5.4float1.45.3290705182008E-155.4-1.4应该是4如果我将这两个值相加,结果是正确的。我的错误在哪里?这不可能是一个四舍五入的问题。 最佳答案 如果仍然有人在访问此页面时遇到类

c++ - 与 int 乘 int 相比,为什么执行浮点乘浮点矩阵乘法更快?

有两个int矩阵A和B,有超过1000行和10K列,我经常需要将它们转换为浮点矩阵以获得加速(4倍或更多)。我想知道为什么会这样?我意识到浮点矩阵乘法有很多优化和矢量化,例如AVX等。但是,对于整数(如果我没记错的话)有诸如AVX2之类的指令。而且,不能将SSE和AVX用于整数吗?为什么在矩阵代数库(如Numpy或Eigen)下没有启发式算法来捕获这一点并像float一样更快地执行整数矩阵乘法?Aboutacceptedanswer:While@sascha'sanswerisveryinformativeandrelevant,@chatz'sansweristheactualrea

c++ - 与 int 乘 int 相比,为什么执行浮点乘浮点矩阵乘法更快?

有两个int矩阵A和B,有超过1000行和10K列,我经常需要将它们转换为浮点矩阵以获得加速(4倍或更多)。我想知道为什么会这样?我意识到浮点矩阵乘法有很多优化和矢量化,例如AVX等。但是,对于整数(如果我没记错的话)有诸如AVX2之类的指令。而且,不能将SSE和AVX用于整数吗?为什么在矩阵代数库(如Numpy或Eigen)下没有启发式算法来捕获这一点并像float一样更快地执行整数矩阵乘法?Aboutacceptedanswer:While@sascha'sanswerisveryinformativeandrelevant,@chatz'sansweristheactualrea

ruby - 在 Ruby 中,将浮点整数转换为 %H %M %S 时间

如何将float(例如13.5)转换为相应的24小时制时间%H:%M:%S?(13.5为13:30:00,8.25为8:15:00)我还在琢磨Time类……这让我很困惑 最佳答案 sec=(13.5*3600).to_imin,sec=sec.divmod(60)hour,min=min.divmod(60)"%02d:%02d:%02d"%[hour,min,sec]#=>"13:30:00" 关于ruby-在Ruby中,将浮点整数转换为%H%M%S时间,我们在StackOverflo

objective-c - NSJSONSerialization.JSONObjectWithData 浮点转换/舍入错误?

我的简单RubyMotion代码:data=DataParser.parse(url)error_ptr=Pointer.new(:object)json=NSJSONSerialization.JSONObjectWithData(data,options:0,error:error_ptr)该url是一个天气API,它提供一个带有温度的JSON作为float,如{"temp_c":22.4,...}。奇怪的是,float22.4被转换为22.3999938964844。如果我检查data.to_s,温度读数为22.4,所以我假设错误在NSJSONSerialization.JSON