precision相关内容
可能的重复: C# 中的大整数 C# 无限制有效十进制数字(任意精度),无需 java 我在 C# 中的任意精度小数? 中阅读了问题,但我没有没有 J# 库.我需要一个带有 C# 的任意精度小数库. 解决方案 Big Decimal: 安装 J# 运行时(免费):http://www.microsoft.com/downloads/en/details.aspx?famil
..
我在我的应用程序中为我的数字使用 BigDecimal,例如,使用 JPA.我对“精度"和“规模"这两个术语进行了一些研究,但我不明白它们到底是什么. 谁能解释一下 BigDecimal 值的“精度"和“比例"的含义? @Column(精度 = 11, 比例 = 2) 谢谢! 解决方案 BigDecimal 由两个值定义:任意精度整数和 32 位整数 scale.BigDecim
..
当然大多数语言都有用于此的库函数,但假设我想自己做. 假设浮点数是在 C 或 Java 程序中给出的('f' 或 'd' 后缀除外),例如“4.2e1"、“.42e2" 或简单的 "42".一般来说,我们有小数点前的“整数部分"、小数点后的“小数部分"和“指数".三个都是整数. 查找和处理单个数字很容易,但是如何将它们组合成 float 或 double 类型的值而不损失精度?
..
在将 float 转换为 int 时如何避免浮点错误.例如,以下代码打印:0.5499999999999972 当我受伤时期望它打印 0.55. 包主导入“fmt"功能主(){x := 100.55fmt.Println(x - float64(int(x)))}输出:0.5499999999999972 解决方案 你需要了解一些东西:100.55 是一个十进制数(以十进制基数表示).十进制
..
给定一个double,我想把它四舍五入到给定的精度小数点后,类似于PHP的round()函数. 我能在 Dart 文档中找到的最接近的东西是 double.toStringAsPrecision(),但这并不是我所需要的,因为它在总精度点数中包含小数点之前的数字. 例如,使用 toStringAsPrecision(3): 0.123456789 舍入为 0.1239.1234567
..
如果你这样做 for(var i = 0; i 您开始比较从 78764357878563790 到 78764357878563790+29 的值,所以...就像您运行它时看到的那样,您会从 i = 8 到 24 得到真值. 所以我不知道我是否不明白,但不应该存在 maxint(我不知道)和 maxint-1 ???然后 max 与 maxint-1 不同? 我想这就像浮点数一
..
有谁知道为什么,使用 SQLServer 2005 SELECT CONVERT(DECIMAL(30,15),146804871.212533)/CONVERT(DECIMAL(38,9),12499999.9999) 给我 11.74438969709659, 但是当我将分母的小数位数增加到 15 时,我得到的答案不太准确: SELECT CONVERT(DECIMAL(30,15
..
我正在尝试读取第一列中有条形码的 CSV 文件,但是当 R 将其放入 data.frame 时,它会将 1665535004661 转换为 1.67E+12. 有没有办法以整数格式保存这个数字?我尝试分配一个 "double" 类,但这不起作用,也没有分配一个 "character" 类.一旦它采用 1.67E+12 格式,任何将其转换回整数的尝试都会返回 167000000000.
..
这个问题源于我在进一步调查这个问题后注意到的一些奇怪的事情......em> 我一直认为 MATLAB 变量默认为双精度.所以,如果我要做一些事情,比如声明一个小数点后有 20 位数字的变量: >>数量 = 2.71828182845904553488;>>class(num) % 显示变量类型答案 =双倍的 我希望最后 4 位数字被忽略,因为 浮点数相对准确度约为 10-16: >>
..
我正在将一些代码从 Matlab 移植到 C++. 在 Matlab 中 格式长D = 0.689655172413793(这是 1.0/1.45)E = 2600/D//我得到 E = 3.770000000000e+03 在 C++ 中 double D = 0.68965517241379315;//(这是 1.0/1.45)双E=2600/D;//我得到 E = 3769.99
..
我正在编写一个程序,我需要删除存储在矩阵中的重复点.问题在于,当检查这些点是否在矩阵中时,MATLAB 无法在矩阵中识别它们,尽管它们存在. 在下面的代码中,intersections函数得到了交点: [points(:,1), points(:,2)] = 交叉点(...obj.modifiedVGVertices(1,:), obj.modifiedVGVertices(2,:), .
..
我正在为仅支持 32 位单精度浮点运算的嵌入式硬件编写程序.但是,我正在实现的算法需要 64 位双精度加法和比较.我正在尝试使用两个 float 的元组来模拟 double 数据类型.因此,double d 将被模拟为包含元组的 struct:(float d.hi, float d.low). 使用字典顺序进行比较应该很简单.然而,添加有点棘手,因为我不确定我应该使用哪个基地.应该是 FL
..
我在数据库中指定了以下列:decimal(5,2) 人们如何理解这一点? 根据在 SQL Server Management Studio 中查看的列上的属性,我可以看到它的意思是:decimal(Numeric precision, Numeric scale). 精度和规模的实际含义是什么? 很容易将其解释为具有 5 位数字和两位小数的小数...即 12345.12
..
我正在尝试将 GPU 与 CPU 性能进行比较.对于 NVIDIA GPU,我一直使用 cudaEvent_t 类型来获得非常精确的计时. 对于 CPU,我一直在使用以下代码: //定时器clock_t 开始,停止;浮动经过时间 = 0;//捕获开始时间开始 = 时钟();//在这里做点什么......//捕获停止时间停止 = 时钟();//检索经过的时间(以毫秒为单位)elapsedTi
..
我正面临 round() 函数的奇怪行为: for i in range(1, 15, 2):n = i/2打印(n,“=>",轮(n)) 此代码打印: 0.5 =>01.5 =>22.5 =>23.5 =>44.5 =>45.5 =>66.5 =>6 我希望浮点值总是向上取整,但它被四舍五入到最接近的偶数. 为什么会出现这种行为,获得正确结果的最佳方法是什么? 我尝试使用
..
我在做一些单元测试时遇到了一些意外的 DateTime.UtcNow 行为.看起来,当您快速连续调用 DateTime.Now/UtcNow 时,它似乎在比预期更长的时间间隔内为您返回相同的值,而不是捕获更精确的毫秒增量. 我知道有一个 Stopwatch 类更适合进行精确的时间测量,但我很好奇是否有人可以在 DateTime 中解释这种行为?是否有 DateTime.Now 的官方精度记录
..
不,这不是另一个“为什么是 (1/3.0)*3 != 1" 问题. 我最近阅读了很多关于浮点的文章;具体来说,相同的计算可能如何在不同的架构或优化设置下给出不同的结果. 这是存储重播或点对点联网(与服务器-客户端相反),它依赖于所有客户端在每次运行程序时生成完全相同的结果——一个浮点计算中的小差异可能导致不同机器上的游戏状态截然不同(甚至在同一台机器上!) 即使在“遵循"IEEE
..
R 中有一个选项可以控制数字显示.例如: options(digits=10) 应该以 10 位数字给出计算结果,直到 R 会话结束.在R的帮助文件中,digits参数的定义如下: digits:控制位数打印数值时打印.这只是一个建议.有效值是 1...22 与默认 7 所以,它说这只是一个建议.如果我喜欢总是显示 10 位数字,而不是更多或更少怎么办? 我的第二个问题是,如
..
我已经阅读了双精度和单精度之间的区别.然而,在大多数情况下,float 和 double 似乎是可以互换的,即使用一个或另一个似乎不会影响结果.真的是这样吗?什么时候浮动和双打可以互换?它们之间有什么区别? 解决方案 巨大的差异. 顾名思义,double 有 2xfloat[1].一般来说,double 有 15 位十进制数的精度,而 float 有 7 位. 以下是计算位数的
..
在我的之前的问题中,我打印了一个double 使用 cout 在我没想到的时候被四舍五入了.如何使 cout 使用全精度打印 double? 解决方案 您可以直接在 std::cout 上设置精度并使用 std::fixed 格式说明符. double d = 3.14159265358979;cout.precision(17);cout
..