草庐IT

精度评定

全部标签

java - Linux 和 Windows JDBC 时间戳精度的差异?

当通过windowsjdbc或linuxjdbc从oracletimestamp(9)加载时,java.sql.Timestamp的实际精度是否存在差异。不同的驱动程序是否有不同的行为/精度? 最佳答案 Ajava.sql.Timestamp具有纳秒精度:Athinwrapperaroundjava.util.DatethatallowstheJDBCAPItoidentifythisasanSQLTIMESTAMPvalue.ItaddstheabilitytoholdtheSQLTIMESTAMPfractionalsecond

c++ - 固定小数精度

这个问题在这里已经有了答案:HowcanIchangetheprecisionofprintingwiththestl?(2个答案)关闭7年前。我正在使用std::cout.precision(5);设置我的输出的小数精度。但是,我宁愿让我的输出总是输出5个小数位(现在它不会显示0)。我将如何更改我的代码以反射(reflect)这一点?

c++ - 如何以依赖于模板类型名的方式提高 C++ 模板的精度?

我有一个模板化的数学函数,它接受两个值,对它们进行一些数学运算,然后返回一个相同类型的值。templateTmath_function(Ta,Tb){LongTx=MATH_OP1(a,b);returnMATH_OP2(x,a);}我想将中间值(在x中)存储在一个基本上是T的长版本(上面称为LongT)的类型中。所以,如果T是float,我希望x是double;如果T是一个整数,我希望x是一个长整数。有什么方法可以做到这一点吗?我尝试了enable_if,但似乎我真的需要一个enable_if_else。我宁愿让编译器自己找出对LongT使用什么。我宁愿在调用函数时不必指定它。

c++ - 关于浮点计算的准确度/精度,可以提出什么声明(如果有的话)?

我正在开发一个进行大量浮点计算的应用程序。我们在具有double浮点值的Intelx86上使用VC++。我们声称我们的计算精确到n个十进制数字(现在是7,但试图声称是15)。当我们的结果略有变化(由于代码重构、清理等)时,我们会根据其他来源来验证我们的结果。我知道很多因素都会影响整体精度,例如FPU控制状态、编译器/优化器、浮点模型和操作本身的整体顺序(即算法本身),但考虑到固有的不确定性在FP计算中(例如,无法表示0.1),要求所有计算的任何特定精度似乎是无效的。我的问题是:在不进行任何类型的分析(例如区间分析)的情况下,对FP计算的准确性做出任何一般性声明是否有效?如果是这样,可以

c++ - 将数字从字符串流转换为具有设定精度的字符串

我想从stringstream中获取一个数字并将其设置为5位有效数字。我该怎么做呢?到目前为止,这是我设法想出的:doublea=34.34566535std::stringstreamprecisionValue;precisionValue.precision(6)但是,这不是编译。谢谢。 最佳答案 它不能编译因为ios_base::precision()返回streamsize(它是一个整体类型)。您可以使用streammanipulators:precisionValue您需要包含.

c++ - 通过高范围位置提高 DirectX 的精度?

我正在用directx9用c++创建一个随机创建的世界的小游戏,当玩家远离3d原点(0,0,0)时出现问题3d渲染变得非常不精确,导致视觉问题。我认为这是因为发送到着色器的值是float,而float在增加时变得不那么精确。我想过一个移动所有模型而不是移动相机的解决方案,但它需要更多计算,我担心可能会降低性能。是否有解决该问题的技巧?谢谢 最佳答案 问题可能是您达到了单精度float的精度限制。有很多方法可以避免这些问题,具体取决于您的设置和遇到的特定问题;您可能会找到不需要严重影响性能的一个。从你的问题来看,我怀疑你已经建立了一个

c++ - 在Qt中获取毫秒精度的当前时间

关于QTime::currentTime()的Qt文档说:Notethattheaccuracydependsontheaccuracyoftheunderlyingoperatingsystem;notallsystemsprovide1-millisecondaccuracy.但是有什么方法可以在Windows7中以毫秒精度获取这个时间吗? 最佳答案 您可以使用QDateTime类并将当前时间转换为适当的格式:QDateTime::currentDateTime().toString("yyyy/MM/ddhh:mm:ss,zz

C++:清除单精度 float 的位

我目前正在将一个最初用于OpenCL的程序转换为C++,但我在其中的一个特定部分遇到了一些麻烦。上述程序中常用的表达式之一涉及采用32位float,将其转换为整数(即​​实际上不是将其四舍五入为int,而是将相同的数据解释为int-想想reinterpret_cast),执行一些操作对它施展魔法,然后将其转换回float(再一次,不是实际转换,而是对相同数据的重新解释)。虽然这在OpenCL中运行良好,但对于C++和gcc,这违反了严格的别名规则,如果启用优化会破坏程序,并且根据架构,可能涉及昂贵的加载命中存储,因为浮点寄存器和整数寄存器是分开的。我已经能够有效地避免这些表达式中的大部

c++ - 与 sleep() 相比,定时器有更好的精度吗?

很久以前,我的程序中有一个错误。根本原因是C函数sleep(60);在极少数情况下,sleep时间会少于60秒。或者该函数确实导致线程休眠超过60秒,但操作系统自动更改了时钟(这似乎很可能,因为错误仅发生在XX::00::00上),又名它很少出现,并且只在“整小时”出现(sleep应该在>xh0m0s结束,它在x-1h59m59.99*s结束)。然后我的项目经理继续咆哮,他说了上百万次我们应该只使用计时器,而不是sleep。从那时起,我就接受了定时器比sleep()更准确的观点,但现在我觉得我应该寻求一些更权威的来源。所以:计时器比sleep更精确吗?(相关)它们是否在深层(在操作系统

C++ String to double atof 转换丢失精度?

C++不是我的语言,所以请原谅这个简单的问题。我在从字符串到double的atof转换中失去了精度,有人可以帮忙吗?stringlAmount;stringlSuspendedInt="131663.51";stringlAccruedInterest="0.0";doubledSuspendedInt=atof(lSuspendedInt.c_str());//PROBLEMHERE?doubledAccruedInterest=atof(lAccruedInterest.c_str());doubledTotal=dSuspendedInt+dAccruedInterest;cha