12得票5回答
PHP的intval()和floor()函数返回值太低的问题?

因为PHP中的浮点数类型不准确,而MySQL中的FLOAT比INT占用更多的空间(并且不准确),所以我总是将价格存储为INT,存储之前乘以100以确保我们有精确的2位小数。但是我认为PHP表现不佳。示例代码:echo "<pre>"; $price = "1.15"; echo ...

11得票4回答
在 sprintf 中,Windows 和 Unix 系统的四舍五入差异问题

我在基于UNIX系统上使用sprintf时遇到问题,它无法正确地四舍五入值。 例如double tmp = 88888888888885.875 char out[512]; 这是88,888,888,888,885.875,只是为了更方便查看。 我正在尝试以以下方式使用它:sprintf...

11得票4回答
如果两种语言遵循IEEE 754标准,那么在这两种语言中进行的计算是否会得出相同的答案?

我正在将一个程序从Scilab代码转换为C ++。特别是一个循环产生的结果与原始的Scilab代码略有不同(这是一段长代码,所以我不会在问题中包含它,但我会尽力总结下面的问题)。 问题是,循环的每个步骤都使用前一步的计算。此外,仅在第100,000次迭代(约为300,000次迭代之一)时才出...

11得票4回答
如何处理无限重复的数字作为小数?

当除法的结果是一个无限重复的数字时,这个数字显然会被截断以适应小数的尺寸。所以像1/3这样的东西变成了0.3333333333333333333。如果我们将这个数字乘以3,我们将得到类似于0.999999999999999999而不是1的结果,如果保留了分数的真实值,我们会得到1。 这是来自...

10得票4回答
从double转换为float时检测精度损失

我正在编写一段代码,需要将双精度数转换为单精度数。我使用boost::numeric_cast来执行此转换,以便在溢出/下溢时发出警告。但是,我还想知道这个转换是否导致了精度损失。 例如 double source = 1988.1012; float dest = nume...

10得票4回答
Haskell logbase错误

我正在尝试计算Haskell中整数的长度,使用这样一个事实:长度等于truncate (log10(x)+1)。 我使用整数创建了以下内容:len :: Integer -> Integer len i = toInteger (truncate (logBase 10 (fromIn...

10得票2回答
Delphi Roundto和FormatFloat的不一致性

我在Delphi 2010中遇到了一个四舍五入异常情况,其中一些数字在roundto中向下舍入,但在formatfloat中向上舍入。 我完全了解十进制数的二进制表示有时会产生误导性结果,但在这种情况下,我希望formatfloat和roundto给出相同的结果。 我也看到有人建议应该使用...

9得票3回答
如何避免使用numpy.round进行不正确的四舍五入?

我正在使用浮点数。如果我执行: import numpy as np np.round(100.045, 2) 我得到: Out[15]: 100.04 显然,应该是100.05。我知道IEEE 754的存在以及浮点数存储方式导致了这个舍入误差。 我的问题是:我如何避免这个误差?

9得票2回答
浮点数在集合视图中四舍五入时出现错误

我希望解决设备上的一个像素问题。我正在设计一个类似下图的日历: 为此我使用了UICollectionViewCell。 - (UIEdgeInsets)collectionView: (UICollectionView *)collectionView layout:(UICol...

9得票2回答
SSE在应该向上舍入时向下舍入。

我正在开发一个应用程序,将范围在-1.0到1.0之间的浮点数样本转换为带符号16位数。为确保优化(SSE)例程的输出准确,我编写了一组测试,并运行未优化版本与SSE版本并比较它们的输出。 在开始之前,我确认了SSE舍入模式设置为最近模式。 在我的测试案例中,公式如下: ratio = 6...