Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Floor函数用于浮动和双值_Java_Math - Fatal编程技术网

Java Floor函数用于浮动和双值

Java Floor函数用于浮动和双值,java,math,Java,Math,如何将floor函数应用于float或double值以获得整数。我得到了double值:4.4497083717E10 浮点值:4.4497084E10不在我的函数中。我得到的下限值为double的下限值:4.4497083717E10浮点值的下限值:4.4497084416E10。下限值是否可能导致整数 .地板是否可能导致整数 从类型的角度来看,-no.被声明为返回一个double,因此永远不会返回静态类型为int的内容 也就是说,该方法的文档声明返回值等于整数。因此,只需将返回的结果强制转换

如何将floor函数应用于float或double值以获得整数。我得到了double值:4.4497083717E10 浮点值:4.4497084E10不在我的函数中。我得到的下限值为double的下限值:4.4497083717E10浮点值的下限值:4.4497084416E10。下限值是否可能导致整数

.地板是否可能导致整数

从类型的角度来看,-no.被声明为返回一个
double
,因此永远不会返回静态类型为
int
的内容

也就是说,该方法的文档声明返回值等于整数。因此,只需将返回的结果强制转换为
int
,就会得到预期的输出


(也就是说,假设您的结果在范围内。
double
可以容纳
int
可以表示的较大数字。请查看技术详细信息。您可能需要检查数据,以确保将其转换为
int
始终是明智的)

4.4497083717E10太大,无法成为
int
,您必须转换为

对于可以表示为long的值,将其转换为long将保持double的整个部分,使其与
Math.floor
相同。i、 e

long l = (long) Math.floor(4.4497083717E10);

long l = (long) 4.4497083717E10;

印刷品

2147483647   -- due to an overflow
44497083717
44497083717

您必须在
floor
@MarkoTopolnik之后应用
round
为什么要对保证已表示整数的浮点数进行舍入?@ChristianRau,因为您需要
long
而这正是
round
返回的结果。双精度从不“表示”整数,它只近似于整数。另一种选择,正如安德泽伊·道尔在回答中所解释的那样,是简单地转换成一个
长的
。结果是完全相同的,不同的只是你的品味和你觉得更干净的东西。我想要的答案是:4表示浮动值下限(4.4497084E10)或双精度(4.44970837E10)。好了——你已经声明了你对演员的偏好:)其他人可能会说“当我看到一个
double
被强制变成
long
时,我浑身发抖。取整更安全”--但事实上这一切都无关紧要,因为两个操作都发生在同一行代码上。这是
取整的实现:
(长)地板(a+0.5d)
。是不是有点类似?
2147483647   -- due to an overflow
44497083717
44497083717