class TestXiaoShu{
public static void main(String args[]){
//float j = 324.2f,i ;//当是这个的时候就会是2.000122
//double j = 324.2,i;//当是这个的时候就会是1.99999999999
double j = 5.2,i;//当是这个的时候2.000000000001
i = (int)j;
j = j - i;
System.out.println(j);
}}
这个精度怎么确定,什么时候才会是2.什么时候是1.
public static void main(String args[]){
//float j = 324.2f,i ;//当是这个的时候就会是2.000122
//double j = 324.2,i;//当是这个的时候就会是1.99999999999
double j = 5.2,i;//当是这个的时候2.000000000001
i = (int)j;
j = j - i;
System.out.println(j);
}}
这个精度怎么确定,什么时候才会是2.什么时候是1.
用BigDecimal吧
如果对精度要求高可以使用bigDecimal和bigInteger
我是这样处理的,把整数和小数分开考虑,因为人民币包含的只有分和角,所以分开。
但是,当把数字传进的时候类型的定义就比较麻烦,如果是float可以直接处理到角,但是分还是老错。