我正在尝试使用用户输入所需的"0"来创建数字0.00000 .... 我的代码有什么问题?
int n;
double dec = 0.0;
in = new Scanner(System.in);
n = in.nextInt();
for (i = 1; i <= n; i++)
dec = dec / 10.0d;
Run Code Online (Sandbox Code Playgroud)
数字不会改变.
您期望double保留小数位数 - 它不会这样做.该值始终标准化.该double类型是所有关于一个数,而不是一个特定的十进制表示的大小.它适用于自然数量 - 重量,高度等.
如果你关心十进制数字,那么BigDecimal对你来说是更合适的类型.这更适用于货币值,例如,确实存在指定为十进制表示的精确数量.
BigDecimal 确实保留了您使用的小数位数,但您需要注意确切的使用方式.你无疑会发现这种setScale方法很有用.
例如:
import java.math.BigDecimal;
class Test {
public static void main(String[] args) throws Exception {
BigDecimal x = new BigDecimal("0")
System.out.println(x); // 0
x = x.setScale(5);
System.out.println(x); // 0.00000
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1563 次 |
| 最近记录: |