可能重复: 随机漂浮在PHP中 是否有可能创build一个0到1.0之间的随机浮点数,例如0.4,0.8等。我使用的是rand,但它只接受整数。
我来自C ++的背景,我知道你不能准确地比较花车的平等。 对于C#,我只是假设同样的政策适用于十进制值,或一般的任何浮点值。 基本上,我有两个十进制值,如果它们不相等,我需要执行一些操作。 例如: decimal value1, value2; // Assume value1 and value2 are set somewhere to valid values. if( value1 != value2 ) { // Do something } 如果这不能按预期的那样工作,我愿意接受一个解决scheme,与误差范围进行平等比较,比如.00001或类似的。 这个问题的build议解决scheme是什么?
我正在查看arcsin的运行时库实现,它是通过计算来实现的: ArcTan(X, Sqrt(1 – X*X)) 然而,计算1 – X*X的代码实际上评估了(1-X)*(1+X) 。 有更好的理由select后者吗? 我怀疑后者减less了X接近于零的舍入误差,但是我不能解释为什么会如此。
对于浮点值,保证a + b == b + a ? 我相信这在IEEE754中是有保证的,但是C ++标准没有规定必须使用IEEE754。 唯一相关的文本似乎来自[expr.add]#3: 二元运算符的结果是操作数的总和。 math运算“sum”是可交换的。 然而,math运算“sum”也是联想的,而浮点加法绝对不是联想的。 所以,在我看来,我们不能断定math中“sum”的交换性意味着这个引用在C ++中指定了交换性。
假设符合IEEE-754标准 ,是一个保证通过双重运输保留的浮法? 换句话说,下面的断言总会被满足吗? int main() { float f = some_random_float(); assert(f == (float)(double)f); } 假设f可以获得IEEE定义的任何特殊值,如NaN和Infinity。 根据IEEE的说法,是否有这样的情况,即assert会得到满足,但是在通过双重传输之后,确切的比特级表示不会被保留下来? 代码片段在C和C ++中都是有效的。
我正在使用jQuery(v1.7.1),我需要获得元素的绝对宽度,但是所有jQuery的宽度方法似乎都是将宽度的值舍入。 例如,如果元素的实际宽度是20.333333px ,那么jQuery的宽度方法返回20 ,即忽略十进制值。 你可以看到我的意思是在这个jsFiddle 所以,我的问题是:我如何得到一个元素的宽度的浮点值?
我需要提取一个浮点数的小数部分,但我得到奇怪的结果: float n = 22.65f; // I want x = 0.65f, but… x = n % 1; // x = 0.6499996 x = n – Math.floor(n); // x = 0.6499996185302734 x = n – (int)n; // x = 0.6499996 为什么会这样呢? 为什么我得到这些值而不是0.65 ?
在本地Python中,没有使用NumPy(对于哪个numpy.nan != numpy.nan )没有NaN,所以我正确地认为Python的浮点==是反身的? 那么既然它是对称的( a == b意味着b == a )和传递的(如果a==b和b==c那么a==c ),我们可以说Python的==是float上的等价关系S' 编辑:好吧,所以我知道有一个NaN: float('nan') (谢谢@unutbu)这将通过各种操作传播,但是没有我介绍它的任何本地Python方法返回它(而不是引发一个例外)通过这个任务?
如何获得一个32位浮点数的二进制IEEE 754表示string? 例 1.00 – >'00111111100000000000000000000000'
我正在研究类似MineCraft的世界的地形生成algorithm。 目前,我正在使用Simplex Noise Demystified(PDF)中的实现方法来使用单工噪声,因为单纯的噪声应该比Perlin噪声更快并且产生更less的伪像。 这看起来相当不错(见图片),但到目前为止,它也很慢。 对于块(16x16x128块)中的每个块运行噪声函数10次(对于地形高度,温度,树木位置等,我需要具有不同波长的噪声),每个块有3个八度的噪声,或者大约100万次调用噪声function总共大约需要700-800毫秒。 尽pipe事实上在algorithm中没有明显的昂贵的操作(至less对我来说),但对于产生具有任何体面的速度的地形而言,这至less是一个数量级太慢的速度。 只是楼,模,一些数组查找和基本的算术。 下面列出了algorithm(用Haskell编写)。 SCC的意见是为了分析。 我省略了二维噪声function,因为它们的工作方式是一样的。 g3 :: (Floating a, RealFrac a) => a g3 = 1/6 {-# INLINE int #-} int :: (Integral a, Num b) => a -> b int = fromIntegral grad3 :: (Floating a, RealFrac a) => V.Vector (a,a,a) grad3 = V.fromList $ [(1,1,0),(-1, 1,0),(1,-1, 0),(-1,-1, […]