在Java中使用以下代码:
double operation = 890 / 1440;
System.out.println(operation);
Run Code Online (Sandbox Code Playgroud)
结果:0.0
我想要的是保存此操作的前4位十进制数字(0.6180).你知道我怎么办吗?
Mic*_*urr 17
使用一个计算结果为double而不是int的表达式初始化变量:
double operation = 890.0 / 1440.0;
Run Code Online (Sandbox Code Playgroud)
否则,表达式使用整数运算(最终截断结果)完成.截断的结果然后转换为a double
.
Boz*_*zho 11
您可以使用双字面值d
- 否则您的数字将被视为类型int
:
double operation = 890d / 1440d;
Run Code Online (Sandbox Code Playgroud)
然后您可以使用a NumberFormat
来指定位数.
例如:
NumberFormat format = new DecimalFormat("#.####");
System.out.println(format.format(operation));
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
double result = (double) 890 / 1400;
Run Code Online (Sandbox Code Playgroud)
其中打印以下内容:
0.6180555555555556
您可以在此处查看如何对数字进行舍入
这是使用 BigDecimal 完成的
import java.math.BigDecimal;
import java.math.RoundingMode;
public class DecimalTest {
/**
* @param args
*/
public static void main(String[] args) {
double operation = 890.0 / 1440.0;
BigDecimal big = new BigDecimal(operation);
big = big.setScale(4, RoundingMode.HALF_UP);
double d2 = big.doubleValue();
System.out.println(String.format("operation : %s", operation));
System.out.println(String.format("scaled : %s", d2));
}
}
Run Code Online (Sandbox Code Playgroud)
输出
操作:0.6180555555555556 缩放:0.6181