Java 如何得到整数部分和数字的余数?

Java 如何得到整数部分和数字的余数?,java,Java,如何得到整数部分和数字的余数?例如,我有一个float类型的数字,123.456789,我想将该数字的整数部分复制到int变量中,并将该数字的其余部分复制到float中: 您可以执行以下操作: float a = 123.456789f; int b = (int)a; //Remove the remainder by casting to `int` float c = a - b; 您可以执行以下操作: float a = 123.456789f; int b = (int)a; //R

如何得到整数部分和数字的余数?例如,我有一个float类型的数字,
123.456789
,我想将该数字的整数部分复制到
int
变量中,并将该数字的其余部分复制到
float
中:


您可以执行以下操作:

float a = 123.456789f;
int b = (int)a; //Remove the remainder by casting to `int`
float c = a - b;

您可以执行以下操作:

float a = 123.456789f;
int b = (int)a; //Remove the remainder by casting to `int`
float c = a - b;
“过度杀戮”解决方案:

float a = 123.456789f;
int b = (int) Math.floor(a);
float c = a - b;
“过度杀戮”解决方案:

float a = 123.456789f;
int b = (int) Math.floor(a);
float c = a - b;

有很多方法可以做到这一点。你自己试过什么吗?做一根绳子。在
上拆分;然后重新分配分割的字符串。然后返回到变量的类型。没什么。你想如何处理负数(例如,
float a=-123.456789
)?它应该是-123和-0.456789吗?或者可能是-123和0.456789?甚至-124和0.543211?有很多方法可以做到这一点。你自己试过什么吗?做一根绳子。在
上拆分;然后重新分配分割的字符串。然后返回到变量的类型。没什么。你想如何处理负数(例如,
float a=-123.456789
)?它应该是-123和-0.456789吗?或者可能是-123和0.456789?甚至-124和0.543211?为什么要使用
floor()
?施放到int值总是四舍五入。@Marv这就是为什么我说这是“过度杀戮”的解决方案。。。你已经发布了简单的,铸造,解决方案。。。我只是想说明,确实有很多方法可以做同样的事情(一些方法比其他方法更有效、更干净)@Marv-casting和
Math.floor
对负数、非整数给出不同的结果。然而,OP没有指定负数的期望行为,因此很难说这里更喜欢哪种方法。@TedHopp我原以为OP会希望
-123.0
-0.456789
用于
-123.456789
,但你是对的,我们不能肯定。不过为什么要使用
floor()
?施放到int值总是四舍五入。@Marv这就是为什么我说这是“过度杀戮”的解决方案。。。你已经发布了简单的,铸造,解决方案。。。我只是想说明,确实有很多方法可以做同样的事情(一些方法比其他方法更有效、更干净)@Marv-casting和
Math.floor
对负数、非整数给出不同的结果。然而,OP没有指定负数所需的行为,因此很难说这里更喜欢哪种方法。@TedHopp我原以为OP需要
-123.0
-0.456789
-123.456789
,但你是对的,我们不能肯定。