我有两个double
计数器,我根据某些标准递增。计数器将以 1 或 0.01 递增,并将结果汇总在一起,得到序列号1.00
、1.01
、等。由于 的性质,1.02
我得到的结果类似于1.01999999999
或,这是一个预期的条件。1.111111111111
double
我正在尝试使用 BigDecimal,尽管Java 文档指出
BigDecimal(double val)
Translates a double into a BigDecimal which is the exact decimal representation of the double's binary floating-point value.
我无法让代码工作。
....
if (condition1) {
indexNo = indexNo + 1;
subIndexNo = .00;
} else
if (condition2) {
subIndexNo = subIndexNo + .01;
}
recNo = indexNo + subIndexNo;
BigDecimal record = BigDecimal(double recNo);
来自编译器的错误消息
C:\pathtojava\sync\java\bin>javac ParseWhiData.java
ParseWhiData.java:97: error: '.class' expected
BigDecimal record = BigDecimal(double recNo);
^
ParseWhiData.java:97: error: ';' expected
BigDecimal record = BigDecimal(double recNo);
^
2 errors
访问 BigDecimal 时我做错了什么?将 double 转换为 Big Demimal 的正确语法是什么,最重要的是,它会1.019999999999
变成1.02