Tag: 精度

乘以1.0和int的精度浮点转换

假设条件(int)(i * 1.0f) == i对于任何整数i是否为真是安全的?

将Java Number转换为BigDecimal:最好的方法

我正在寻找将数字转换为BigDecimal的最佳方法。 这足够好吗? Number number; BigDecimal big = new BigDecimal(number.toString()); 我们可以通过toString()方法失去精度吗?

Python中的双精度浮点值?

有数据types精度比浮动更好吗?

在Ruby中设置浮点的显示精度

是否有可能在Ruby中设置浮点的显示精度? 就像是: z = 1/3 z.to_s #=> 0.33333333333333 z.to_s(3) #=> 0.333 z.to_s(5) #=> 0.33333 或者我必须重写Float的to_s方法?

所有的整数值都是完美的双打吗?

我的问题是,是否所有的整数值保证有一个完美的双重表示。 考虑下面的代码示例打印“相同”: // Example program #include <iostream> #include <string> int main() { int a = 3; int b = 4; double d_a(a); double d_b(b); double int_sum = a + b; double d_sum = d_a + d_b; if (double(int_sum) == d_sum) { std::cout << "Same" << std::endl; } } 这是保证是正确的任何架构,任何编译器, a和b任何值? 将我的任何整数转换为double ,总是被表示为i.0000000000000而不是,例如, i.000000000001 ? 我试了一些其他的数字,它一直是真实的,但无法find这是巧合还是devise的任何事情。 […]

使用2个“浮动”模拟“双”

我正在编写一个只支持32位单精度浮点运算的embedded式硬件程序。 然而,我正在执行的algorithm需要64位双精度加法和比较。 我正在尝试使用两个float的元组来模拟double数据types。 所以一个double d将被模拟为一个包含元组的struct : (float d.hi, float d.low) 。 使用字典顺序来进行比较应该很简单。 然而,加法是有点棘手,因为我不知道我应该使用哪个基地。 应该是FLT_MAX ? 我怎么能检测一个进位? 如何才能做到这一点? 编辑(清晰):我需要额外的有效数字,而不是额外的范围。

在MATLAB中,variables真的是双精度默认?

这个问题是由于我在进一步调查这个问题之后发现的一些奇怪的东西而产生的。 我总是把MATLABvariables理解为默认的双精度 。 所以,如果我要做一些小数点后面20位数的variables声明: >> num = 2.71828182845904553488; >> class(num) %# Display the variable type ans = double 我期望最后4位数字被忽略,因为浮点相对精度在10-16的数量级 : >> eps(num) ans = 4.440892098500626e-016 如果我试图显示小数点后16位以上的数字(使用FPRINTF或SPRINTF ),我得到我期望看到的: >> fprintf('%0.20f\n',num) 2.71828182845904550000 >> sprintf('%0.20f',num) ans = 2.71828182845904550000 换句话说,数字17到20都是0。 但是当我把符号工具箱中的variables精度算术函数传递给num时,事情变得很奇怪,告诉它用21位数的精度来表示数字: >> vpa(num,21) ans = 2.71828182845904553488 什么?! 最后4位数字再次出现! 当我input的原始数字被存储为双精度variablesnum时,不应该丢失它们吗? 既然num是一个双精度variables,当它传递给vpa , vpa是如何知道它们是什么? 我最好的猜测是,MATLAB在内部用比double更高的精度代表num ,因为我把它初始化为一个数字,比double-precisionvariables可以处理的小数点还多。 这究竟是发生了什么,还是其他的事情呢? 奖金:如果你还没有从上面的偏头痛,这是另一个混​​乱的来源… >> num = […]

比C#中的浮动更快吗?

我正在写一个应用程序读取大型浮点数组,并执行一些简单的操作。 我使用花车,因为我认为它会比双打快,但经过一些研究后,我发现这个话题有些混乱。 任何人都可以详细说明这一点?

toFixed()和toPrecision()之间的区别?

我是JavaScript新手,刚刚发现toFixed()和toPrecision()来整数。 但是,我无法弄清楚两者之间的区别。 number.toFixed()和number.toPrecision()之间有什么区别?

单精度和双精度浮点运算有什么区别?

单精度浮点运算和双精度浮点运算有什么区别? 我特别感兴趣的是有关video游戏机的实用术语。 例如,任天堂64有一个64位的处理器,如果这样做,那么这是否意味着它能够进行双精度浮点运算? PS3和Xbox 360能否实现双精度浮点运算或单精度浮点运算,并且一般使用的是双精度能力(如果存在的话)。