- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找在不降低精度的情况下将 Float 转换为 Double 的最佳实践。到目前为止,我只发现一个正确的方法是将 Float 转换为 String,将 String 转换为 Double。
在搜索 Float API 时,我偶然发现了这个方法 doubleValue()。我认为这是一个静态构造函数,它将从我的 Float 返回一个 double 而不会丢失精度,但以下代码的行为类似于强制转换:
public class Main {
public static void main(String[] args) {
Float floatNumber= 4.95f;
Double doubleNumber= floatNumber.doubleValue();
System.out.println(doubleNumber);
}
}
输出为 4.949999809265137
从 Float API 搜索有关此的任何其他文档时,我没有找到任何文档来告诉我调用该方法时究竟发生了什么。有人知道吗?或者有人可以确认所有方法所做的就是将我的 Float 转换为 double 并将其拆箱吗?
最佳答案
如果您真的想要保留 float 的值,那么简单的原始类型转换(甚至是隐式转换)就可以满足您的所有需求:
float f = 4.95f;
double d = f;
从根本上说,4.95f 已经不准确 - 您不能将该数字精确表示为 float 。 floatNumber
的确切值也在 doubleNumber
中表示 - 只是该值不是 4.95。
如果您真的关心精确的小数 数字,您应该改用BigDecimal
(或缩放整数)。
关于java - Float.doubleValue() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181184/
我知道这应该避免,但不幸的是我必须在混合计算中使用整数和 float ( double )。标题已经说明了问题:只要没有溢出,无论数值如何,以下代码是否保证适用于所有 C++ 浮点实现(无断言)? 编
// Demonstrate a Hashtable import java.util.*; class HTDemo { public static void main(String arg
我正在为类研究这个项目,但似乎无法得到方程的答案。 我想要什么 - 输入该行的 A 值:2.45 输入该行的 B 值:4 输入该行的 C 值:-8 输入点的 x 坐标:2.17 输入点的 y 坐标:-
我正在寻找在不降低精度的情况下将 Float 转换为 Double 的最佳实践。到目前为止,我只发现一个正确的方法是将 Float 转换为 String,将 String 转换为 Double。 在搜
所以我正在尝试编写一个使用泛型的方法。该方法假设采用 arrayList 并返回数组中的最大值。这是执行此操作的代码 public T largest() { T value = myLis
我正在尝试找到一种简单的方法将 double 舍入到小数点后两位。我正在使用 BigDecimal 来解决这个问题,但注意到函数 doubleValue的 java.math.BigDecimal 类
当我运行 main 方法时,出现以下异常: Exception in thread "main"java.lang.StackOverflowError,随后是: at Rational.double
我有一个 NSArray,我想在其中存储 double 值。我定义如下 NSMutableArray *setOfDoubles; 我添加如下元素 NSNumber *num; num = [NSNu
我需要发送一个值作为“double”,但我是: 将一个值作为long 将其转换为BigDecimal 在 BigDecimal 上调用方法 scaleByPowerOfTen(使用“-2”使美分成为整
我来自德国。所以我对本地化和 NSTextField 类的属性 doubleValue 有一点问题。逗号和点与美国不同 double a = self.heightTextField.doubleVa
我有这个 double 值: var value = 52.30298270000003 当我将它转换为 string 时,它失去了它的精度: var str = string.Format("{0}
我正在使用 NumberFormat,但不知何故我无法得到例如将“12.34”转换为数字。 我做什么: NumberFormat nf = NumberFormat.getInstance(); tr
我正在处理一个 NSNumber 的 NSMutableArray,我遇到了一个奇怪的错误。 [NSNumber doubleValue](用双 0 构造)似乎不等于 0.0。 错误出现在有史以来最简
double 值的 ToString(),导致小数位丢失 (1521.6666666666667).ToString() ==> "1521.66666666667" 转换为字符串时有什么方法可
如果一个方法返回一个 Double,为什么我们要在它上面调用方法“doubleValue”?它已经返回一个 double 并且在计算中,似乎评估正确。 最佳答案 在 Java 1.5 之前,Java
所以我在创建一个名为 averageCost() 的方法时遇到了问题。我得到的错误是: Exception in thread "main" java.lang.Error: Unresolv
由于此原因应用程序崩溃 -[NSConcreteValue doubleValue]: unrecognized selector sent to 我的项目中使用了以下代码,我进行了很多搜索,我得到了
我正在开发一个需要在 Swift 中显示和计算 Double 类型的应用程序。我创建的结构采用 Double 作为参数,并且由于它也显示它,所以我想在值的末尾保留尾随零。但是,我似乎无法阻止尾随零被截
如下图所示,nsdt 的值大约为 0.033,但 doubleValue 方法返回了 NaN。为什么不返回 0.033? -(void) updateWithDTNSTime:(NSNumber*)
我在使用这些方法时有点困惑。如果两个方法返回相同的值,那么为什么 Jackson API 提供了两种不同的方法? 最佳答案 根据jackson-databind 2.2.0 API 公共(public
我是一名优秀的程序员,十分优秀!