double相关内容
我正在阅读 Joshua Bloch 的 Effective java,在 Item 8: Obey the general contract when overriding equals 中写了这个语句 对于浮点字段,使用 Float.compare 方法;对于双字段,请使用双重比较.对float和double字段做了特殊处理Float.NaN、-0.0f 和类似的 double 的存在是
..
有没有办法在我的 C++ 程序中使用十进制数据类型,例如 decimal32、decimal64 或 decimal128? 解决方案 十进制 TR 并非对所有编译器都实现.一些编译器,例如 gcc,实现了 C Decimal TR 并提供相应的 C++ 扩展.过去有一个可用的 C++ Decimal TR 的开源实现,但我找不到它.如果您的编译器不支持十进制类型,您最好的选择可能是为 I
..
我一直在试图找出原因,但我找不到.有人可以帮帮我吗? 看下面的例子. float f = 125.32f;System.out.println("f 的值 = " + f);双 d = (双) 125.32f;System.out.println("d 的值 = " + d); 这是输出: f 的值 = 125.32d 的值 = 125.31999969482422 解决方案 fl
..
我想使用 Track-Bar 来更改 Form 的不透明度. 这是我的代码: 十进制 trans = trackBar1.Value/5000;this.Opacity = 反式; 当我构建应用程序时,它给出了以下错误: 不能将十进制类型隐式转换为双精度 我曾尝试使用 trans 和 double,但随后 Control 不起作用.此代码在过去的 VB.NET 项目中运行良好.
..
在处理现实世界的货币值时,建议我使用 BigDecimal 而不是 Double.但我没有得到令人信服的解释,除了“通常这样做". 你能解释一下这个问题吗? 解决方案 这称为精度损失,在处理非常大或非常小的数字时非常明显.带基数的十进制数的二进制表示在许多情况下是近似值而不是绝对值.要了解为什么您需要阅读二进制中的浮点数表示.这是一个链接:http://en.wikipedia.or
..
在下面的程序中你可以看到每个略小于.5的值都被四舍五入了,除了0.5. for (int i = 10; i >= 0; i--) {长 l = Double.doubleToLongBits(i + 0.5);双x;做 {x = Double.longBitsToDouble(l);System.out.println(x + " 四舍五入为 " + Math.round(x));l--;}
..
我正在努力更好地理解浮点运算,并看到了一些指向“每个计算机科学家应该知道的关于浮点运算的知识"的链接. 我仍然不明白像 0.1 或 0.5 这样的数字是如何以浮点数和小数形式存储的. 有人可以解释一下它是如何布局的吗? 我知道浮点数是两部分(即,某物的幂的数字). 解决方案 我一直把人们指向 Harald Schmidt 的在线转换器,以及 维基百科 IEEE754-19
..
我有一个原始浮点数,我需要一个原始双精度数.简单地将浮点数转换为 double 会给我带来奇怪的额外精度.例如: 浮点温度 = 14009.35F;System.out.println(Float.toString(temp));//打印 14009.35System.out.println(Double.toString((double)temp));//打印 14009.349609375
..
float 数据类型是单精度 32 位 IEEE 754 浮点数,double 数据类型是双精度 64 位 IEEE 754 浮点数. 这是什么意思?我什么时候应该使用 float 而不是 double 或反之亦然? 解决方案 维基百科页面这是一个很好的起点. 总结一下: float 用 32 位表示,有 1 个符号位、8 位指数和 23 位有效数字(或从科学记数法数得出
..
我在 javascript 中有大量数值 y.我想通过将它们四舍五入到最接近的 x 倍数来对它们进行分组,并将结果转换为字符串. 如何解决烦人的浮点精度问题? 例如: 0.2 + 0.4 = 0.6000000000000001 我尝试过的两件事: >>>y = 1.23456789>>>x = 0.2>>>parseInt(Math.round(Math.floor(y/x))
..
.NET中的decimal、float和double有什么区别? 什么时候有人会使用其中之一? 解决方案 float 和 double 是 浮动二进制点类型.换句话说,它们代表这样一个数字: 10001.10010110011 二进制数和二进制点的位置都在值内编码. decimal 是 浮动 decimal 点输入.换句话说,它们代表这样一个数字: 12345.65789
..
我正在学习自己的 Play 2.0(使用 Java API)并希望有一个 double/float 参数(用于位置坐标),例如 http://myfooapp.com/events/find?latitude=25.123456&longitude=60.251253. 我可以通过获取参数作为字符串并在控制器等处解析它们来做到这一点,但是我可以在这里使用自动绑定吗? 现在,我首先尝试简
..
我正在查询一个数据库,但我得到的一些结果为空.我将这些值设置为数据类型为 double 的变量.让我们称变量为“结果".所以我尝试设置一个 if 语句来查看它等于 Null ,这当然不起作用.这是我的 if 语句代码: if (result == null){结果 = 0;} 我用这段代码得到的错误是: 参数类型的运算符 == 未定义 double, null 有没有更好的方法来确定它是否
..
我有一个名为“physics 1b.sh"的文件.在 bash 中,如果我尝试 x="物理 1b"grep "字符串" "$x".sh grep 抱怨: grep:physics 1b:没有那个文件或目录. 但是,当我这样做时 grep "string" Physics\ 1b.sh 它工作正常.所以我猜这个问题与变量没有被扩展以包含 grep 需要识别空间的反斜杠有关.我如何让它发挥
..
在执行以下代码时,我在行中收到 NullPointerException: value = 条件 ?getDouble() : 1.0; 在前面几行中,当我使用 null 而不是 getDouble() 时,一切正常,这很奇怪. 公共类测试{静态双 getDouble() {返回空;}公共静态无效主(字符串 [] args){布尔条件 = 真;双倍价值;价值=条件?空:1.0;//工作正常S
..
我正在学习自己的 Play 2.0(使用 Java API)并且想要一个双精度/浮点参数(用于位置坐标),例如 http://myfooapp.com/events/find?latitude=25.123456&longitude=60.251253. 我可以通过将参数作为字符串获取并在控制器等处解析它们来做到这一点,但我可以在这里使用自动绑定吗? 现在,我首先尝试简单地使用一个 d
..
好的,如果我有这个代码 double a=1.5;int b=(int)a;System.out.println(b); 一切正常,但是 对象a=1.5;int b=(int)a;System.out.println(b); 运行后出现以下错误(Eclipse 没有出现任何错误) java.lang.ClassCastException: java.lang.Double 不能转换为 j
..
在另一个 Bruce Eckel 练习中,我编写的代码采用一个方法并更改另一个类中的值.这是我的代码: class Big {浮动 b;}公共类 PassObject {静态无效 f(字母 y){y.c = 'z';}//结束f()静态无效g(大z){z.b = 2.2;}公共静态无效主(字符串[] args){Big t = new Big();t.b = 5.6;System.out.pri
..
我编写了以下代码: public class NewClass2 实现 Comparator;{公共 int 比较(点 p1,点 p2){返回 (int)(p1.getY() - p2.getY());}} 如果我假设有两个双数,3.2 - 3.1,差异应该是 0.1.然而,当我将数字转换为 int 时,差异最终为 0,这是不正确的. 因此我需要 compare() 返回双精度值,而不
..
我有一个这样的变量: ListframeList = new ArrayList();/* 双元素已添加到 frameList */ 如何在 Java 中从该变量中获得一个具有 double[] 类型的新变量并具有高性能? 解决方案 高性能 - 每个 Double 对象包装一个 double 值.如果要将所有这些值存储到 double[] 数组中,则必须遍历 Double 实例的集合.
..