对于以下代码(Java):
double d = (double) m / n; //m and n are integers, n>0
int i = (int) (d * n);
i == m
最后一个表达式总是为真吗? 如果不是,这总是正确的吗?:
i = (int) Math.round(d * n);
i == m
最佳答案
int i = (int) (d * n); i == m;
对于 m=1,n=49,这是错误的。
i = (int) Math.round(d * n); i == m;
我的直觉告诉我这应该是真的,但可能很难严格证明。
关于java - 在 Java 中从 double 到 int 的转换是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7015333/