标签: floating-point

任何人都可以用C#中的签名浮点数解释这种奇怪的行为吗?

以下是带注释的示例:

class Program
{
    // first version of structure
    public struct D1
    {
        public double d;
        public int f;
    }

    // during some changes in code then we got D2 from D1
    // Field f type became double while it was int before
    public struct D2 
    {
        public double d;
        public double f;
    }

    static void Main(string[] args)
    {
        // Scenario with the first version
        D1 a = new D1();
        D1 b = new D1();
        a.f = b.f = 1; …
Run Code Online (Sandbox Code Playgroud)

.net c# floating-point

247
推荐指数
8
解决办法
2万
查看次数

为什么Ruby中的除法返回整数而不是十进制值?

例如:

9 / 5  #=> 1
Run Code Online (Sandbox Code Playgroud)

但我期待1.8.如何获得正确的十进制(非整数)结果?为什么它会回归1

ruby math floating-point division integer-division

245
推荐指数
7
解决办法
15万
查看次数

如何在JavaScript中将字符串转换为float?

我试图从数据网格中解析两个值.
字段是数字的,当它们有逗号(例如554,20)时,我无法得到逗号后面的数字.
我试过parseIntparseFloat.我怎样才能做到这一点?

javascript floating-point parsing

243
推荐指数
4
解决办法
41万
查看次数

对于IEEE754 NaN值,所有比较返回false的理由是什么?

为什么NaN值的比较与所有其他值的行为不同?也就是说,与运算符==,<=,> =,<,>的所有比较(其中一个或两个值为NaN)返回false,这与所有其他值的行为相反.

我想这可以通过某种方式简化数值计算,但我找不到明确说明的理由,甚至在Kahan 的IEEE 754状态讲义中也没有详细讨论其他设计决策.

这种异常行为在进行简单数据处理时会造成麻烦.例如,当在C程序中对某些实值字段的记录列表进行排序时,我需要编写额外的代码来处理NaN作为最大元素,否则排序算法可能会变得混乱.

编辑: 迄今为止的答案都认为比较NaNs毫无意义.

我同意,但这并不意味着正确的答案是错误的,而是一个非布尔值(NaB),幸运的是它不存在.

因此,在我看来,选择返回真或假的比较是任意的,对于一般数据处理,如果它遵循通常的定律(==的反射性,<= =,>的三分法),那将是有利的,以免数据结构依赖这些法律变得困惑.

因此,我要求打破这些法律的一些具体优势,而不仅仅是哲学推理.

编辑2: 我想我现在理解为什么使NaN最大化是一个坏主意,它会搞砸上限的计算.

可能需要NaN!= NaN以避免检测环路中的收敛,例如

while (x != oldX) {
    oldX = x;
    x = better_approximation(x);
}
Run Code Online (Sandbox Code Playgroud)

然而,最好通过比较绝对差异与小限制来编写.所以恕我直言,这是打破NaN反身性的一个相对弱的论据.

floating-point comparison nan ieee-754 iec10967

240
推荐指数
5
解决办法
4万
查看次数

为什么Python的无穷大散列具有??的数字?

Python中无穷大的哈​​希值具有与pi匹配的数字:

>>> inf = float('inf')
>>> hash(inf)
314159
>>> int(math.pi*1e5)
314159
Run Code Online (Sandbox Code Playgroud)

这仅仅是巧合还是故意的?

python math floating-point hash pi

236
推荐指数
3
解决办法
3万
查看次数

round()for C++中的float

我需要一个简单的浮点舍入函数,因此:

double round(double);

round(0.1) = 0
round(-0.1) = 0
round(-0.9) = -1
Run Code Online (Sandbox Code Playgroud)

我能找到ceil()floor()在math.h中-但不是round().

它是以另一个名称存在于标准C++库中,还是缺少?

c++ floating-point rounding

227
推荐指数
11
解决办法
36万
查看次数

什么MySQL数据类型应该用于纬度/经度8位小数?

我正在使用地图数据,并Latitude/Longitude扩展到8位小数.例如:

Latitude 40.71727401
Longitude -74.00898606
Run Code Online (Sandbox Code Playgroud)

我在Google文档中看到 它使用:

lat FLOAT( 10, 6 ) NOT NULL,  
lng FLOAT( 10, 6 ) NOT NULL
Run Code Online (Sandbox Code Playgroud)

但是,它们的小数位只有6个.
我应该使用FLOAT(10, 8)还是有另一种方法来考虑存储这些数据,这样才能准确.它将与地图计算一起使用.谢谢!

mysql floating-point types

227
推荐指数
8
解决办法
16万
查看次数

将浮点值添加到android资源/值

我试图线使用我的TextViews之间添加一点空间android:lineSpacingMultiplier文档:

文本行之间的额外间距,作为乘数.

必须是浮点值,例如"1.2".

由于我在几个不同的TextView中使用它,我想为我的资源添加一个全局维度/值,但我不知道使用哪个标记,如果它甚至存在.我已经尝试了所有对我有意义的资源类型,但它们都不起作用.

我想拥有的是这样的:

<resources>
    <dimen name="text_line_spacing">1.4</dimen>
</resources>
Run Code Online (Sandbox Code Playgroud)

编辑:我知道android:lineSpacingExtra(需要一个附加单位的维度),但我想android:lineSpacingMultiplier尽可能使用.

floating-point resources android

224
推荐指数
7
解决办法
9万
查看次数

使用JavaScript获取数字的小数部分

我有像3.2和的浮点数1.6.

我需要将数字分成整数和小数部分.例如,值3.2将被分成两个数字,即30.2

获取整数部分很简单:

n = Math.floor(n);
Run Code Online (Sandbox Code Playgroud)

但是我无法获得小数部分.我试过这个:

remainer = n % 2; //obtem a parte decimal do rating
Run Code Online (Sandbox Code Playgroud)

但它并不总是正常工作.

前面的代码具有以下输出:

n = 3.1 => remainer = 1.1
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

javascript floating-point numbers decimal rounding

224
推荐指数
12
解决办法
23万
查看次数

将Float格式化为n个小数位

我需要将float格式化为"n"个小数位.

正在尝试BigDecimal,但返回值不正确...

public static float Redondear(float pNumero, int pCantidadDecimales) {
    // the function is call with the values Redondear(625.3f, 2)
    BigDecimal value = new BigDecimal(pNumero);
    value = value.setScale(pCantidadDecimales, RoundingMode.HALF_EVEN); // here the value is correct (625.30)
    return value.floatValue(); // but here the values is 625.3
}
Run Code Online (Sandbox Code Playgroud)

我需要返回一个浮点值,其中包含我指定的小数位数.

我不需要Float价值回报Double

.

java format floating-point android numbers

216
推荐指数
6
解决办法
33万
查看次数