double相关内容
为什么在 Java 中允许 char c = (char)65.8;? 由于 65.8 不是精确的 Unicode 值,它不应该抛出错误吗?我知道双精度数被截断为整数,在本例中为 65,但对我来说,允许程序员进行这样的转换似乎是糟糕的设计. 解决方案 也就是窄化类型转换.来自 oracle 文档: 原始类型的 22 种特定转换称为窄化原始转换: 字节或字符的缩写 字
..
如何将 char 形式的数值转换为 double 值? 我尝试将 char 转换为双精度,但是...它不像我猜测的那样工作,因为诸如 '4' 之类的 char 将在双精度中转换为 52.0. 那么有没有办法转换一个值为say的char字符 c = '4'到 4.0 的双精度值,我实际上可以对该值进行数学计算? 这只是我创建的一个小程序,目的是表明将数字字符直接转换为双精度不会像我
..
使用 toString() 时,Double 添加逗号(5143 打印为 5,143).如何禁用逗号? 解决方案 正如 Rorick 正确指出的那样,您的问题属于 Locale.但是,您应该查看 DecimalFormat类,以防万一更改语言环境意味着搞砸所有事情. 查看 NumberFormat 类, 处理千位分隔符.因为您的情况似乎是关于千位分隔符.
..
我目前使用以下代码打印双精度: return String.format("%.2f", someDouble); 这很好用,除了 Java 使用我的语言环境的小数分隔符(逗号)而我想使用点.有没有简单的方法可以做到这一点? 解决方案 使用String.format 可让您指定语言环境: return String.format(Locale.ROOT, "%.2f", someDo
..
我需要将双“amt"格式化为美元金额 println("$" + dollar + "." + cents),以便小数点后有两位数. 这样做的最佳方法是什么? if (payOrCharge
..
如果用两个单精度浮点数来模拟双精度浮点数,性能会如何,能做好吗? 目前,Nvidia 对支持双精度的 Tesla 卡收取相当高的费用,使您能够获得三分之一的单精度性能(Titan/Titan Black 除外). 如果使用具有 gimped 双精度的 Geforce GPU 并使用 2 个单精度浮点数模拟双精度,性能会如何? 解决方案 您可以通过计算实现每个双浮点操作所需的 f
..
我尝试将 double 转换为其二进制表示,但使用此 Long.toBinaryString(Double.doubleToRawLongBits(d)) 并没有帮助,因为我有大量数字,Long 可以t 存储它们,即 2^900. 解决方案 Long.toBinaryString(Double.doubleToRawLongBits(d)) 似乎工作得很好. System.out.pri
..
假设我们在 c++.如果我们按顺序计算这个数组中数字的总和,例如 double sum = 0;for (int i = 0; i 我们得到一些值x. 但是,如果我们将一个数组分成若干部分,然后计算每个部分的总和,然后将所有部分总和相加,我们会得到一个值 x2,它接近于 x 但不完全是 x.所以我在计算总和时失去了准确性. 有人知道如何在不损失准确性的情况下通过将这些数字分成一些
..
在计算x*x 不会上溢或下溢到 Inf、0 或非正规数? 假设 sqrt 返回最接近的可表示结果,x*x 也是如此(两者都是 IEEE 标准规定的,“平方根运算计算为如果以无限精度计算,然后四舍五入为两个最接近的指定精度的浮点数之一,这些浮点数围绕无限精确的结果"). 假设如果存在这样的双打,那么可能有接近1的例子,我写了一个程序来找到这些反例,它没有找到1.0和之间的任何反例1.00
..
当在 iPhone 应用程序中使用 double 或 float 数据类型时,我遇到了 ">=" 和 "= 4.2"之类的比较是假而不是真.如何避免这个问题? 解决方案 当一个变量被
..
我创作是为了好玩,但我仍然想认真对待它,这是一个托管各种测试的网站.我希望通过这些测试收集统计数据. 一些数据将包括测试完成时间的百分比.我可以轻松计算测试的百分比,但我希望返回真实数据,因为我存储了有关完成测试的各种不同值. 大多数值都是 PHP 浮点数,所以我的问题是,如果我想要真正的统计数据,我应该将它们存储在 MYSQL 中作为 FLOAT、DOUBLE 还是 DECIMAL.
..
可能重复: 在java中使用双精度保持精度 Java 程序中奇怪的浮点行为 我正在制作一个直方图类,但遇到了一个奇怪的问题. 这是该类的基础知识,还有更多方法,但与问题无关. private int[] 计数器;私人 int numCounters;私人双最小,最大,宽度;公共直方图(双botRange,双topRange,int numCounters){计数器 = 新的 in
..
我想知道为什么会出现此错误.(这是Eclipse调试的显示日志) 变量(双)2.8tot.getIva()(java.lang.Double) 0.17var+tot.get()(双) 2.9699999999999998 我不明白为什么我没有得到简单的 2.97! 解决方案 如果你想要 2.97,你应该使用 BigDecimal. doubles 在 binary 中存储为分数
..
今天,我翻阅了一些 C++ 代码(由其他人编写),发现了这个部分: double someValue = ...if (someValue ::epsilon() &&某个值 >-std::numeric_limits::epsilon()) {一些值 = 0.0;} 我正在尝试弄清楚这是否有意义. epsilon
..
我知道 0.1 十进制数不能用有限的二进制数精确表示(explanation),所以 double n = 0.1 会损失一些精度,不会完全是 0.1.另一方面,0.5 可以精确表示,因为它是 0.5 = 1/2 = 0.1b. 话虽如此,添加 0.1 三次 不会给出完全正确的 0.3 是可以理解的,所以下面的代码打印出 false: double sum = 0, d = 0.1;for
..
我见过一些这样的符号,但我找不到任何奇怪的地方, 双 d = 5D;浮动 f = 3.0F; 5后面的D和F到底是什么意思? 解决方案 表示这些数字分别是双精度数和浮点数.假设你有 void foo(int x);void foo(float x);无效 foo(双 x); 然后你打电话 foo(5) 编译器可能会被难住.这就是为什么你可以说 5、5f 或 5.0 来指定类型.
..
在 C++ 中 (或者可能只有我们的编译器 VC8 和 VC10) 3.14 是一个双精度字面值,而 3.14f 是一个浮点数字面量. 现在我有个同事说: 我们应该在浮点计算中使用浮点文字,在双精度计算中使用双文字,因为当在计算中使用常量时,这可能会影响计算的精度. 具体来说,我认为他的意思是: 双 d1, d2;浮动 f1, f2;...初始化和东西...f1 = 3.141
..
为什么我需要使用 3.14f 而不是 3.14 来禁用所有这些警告?这有一个连贯的原因吗? 解决方案 这就是 C++(和 C)标准所决定的.浮点字面量是 double 类型,如果您需要它们是浮点数,可以在它们后面加上 f.似乎没有任何明确说明的原因,但我猜这是 a) 与 C 的兼容性,以及 b) 精度和存储之间的权衡. 2.13.3 浮动文字 类型浮点字面量是双精度的,除非由后缀明确
..
我有一道考试题要复习,题目是 4 分. “在 java 中,我们可以将 int 分配给 double 或 float".这会丢失信息吗?为什么? 我之所以这么说是因为整数通常是固定长度或大小的——存储数据的精度是有限的,而以浮点数存储信息可以是无限的,本质上我们会因此而丢失信息 现在我有点粗略地知道我是否在这里击中了正确的区域.我很确定它会失去精确度,但我无法确切说明原因.请问我
..
我正在阅读“加速 C++".我发现一句话说“有时 double 在执行中比 C++ 中的 float 更快".读完句子后,我对 float 和 double 的工作感到困惑.请向我解释这一点. 解决方案 取决于原生硬件的功能. 如果硬件是(或类似)具有传统 x87 数学的 x86,float 和 double 都(免费)扩展为内部 80 位格式,因此两者具有相同的性能(缓存占用空间除
..