我不明白为什么浮点值与双精度值不同。从下面的示例来看,对于相同的操作,float 提供的结果似乎与双精度型不同:
public class Test {
public static void main(String[] args) {
double a = 99999.8d;
double b = 99999.65d;
System.out.println(a + b);
float a2 = 99999.8f;
float b2 = 99999.65f;
System.out.println(a2 + b2);
}
}
输出:
199999.45
199999.44
你能解释一下float和double之间的区别吗?
public class Main {
public static void main(String[] args) {
float a=12.6664287277627762f;
double b=12.6664287277627762;
System.out.println(a);
System.out.println(b);
}
}
输出:
12.666429
12.666428727762776
浮点数可以处理大约 7 个小数位。双精度可以处理大约 16 个小数位。
你能解释一下float和double之间的区别吗?
当然。假设你有两种十进制类型,一种有五个有效数字,一种有十个。
对于每种类型,您将使用什么值来表示pi?在这两种情况下,你都试图得到一个你不能精确表示的数字——但是你不会得到相同的值,不是吗?
浮点数
和双精度
型是相同的 - 两者都是二进制浮点类型,但双精度
比浮点数
更精确。
浮点数是 32 位 IEEE 754 浮点数。
双精度是64位IEEE 754浮点数。
所以这只是一个精度问题,因为8和.65这两个分数部分都没有终止的二进制表示,所以存在一些舍入错误。double精度更高,因此舍入误差略小。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 这是简单的方法。请勿将regex用于内置类型。
问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 是简单的方法。请勿将regex用于内置类型。
问题内容: 是否有比浮点精度更好的数据类型? 问题答案: 小数数据类型 与基于硬件的二进制浮点数不同,十进制模块具有用户可更改的精度(默认为28位),可以与给定问题所需的精度一样大。 如果您对性能问题感到困扰,请查看GMPY
单精度浮动值和双精度浮动值有什么区别?
本文向大家介绍C#浮点,双精度,十进制,包括了C#浮点,双精度,十进制的使用技巧和注意事项,需要的朋友参考一下 示例 浮动 float是.NET数据类型的别名System.Single。它允许存储IEEE 754单精度浮点数。存在此数据类型mscorlib.dll,每个C#项目在创建它们时都会隐式引用该数据类型。 大致范围:-3.4×10 38至3.4×10 38 十进制精度:6-9个有效数字 记
问题内容: 我有这个问题,我必须将公里转换成英里。我是一个新手程序员,所以请耐心等待。 到目前为止,这是我的代码: 它给我一个错误,说: 问题答案: 您正在尝试将a 设置为变量 要修复,请更改此行 至