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.
解决方案 »
- 单行源代码平均综合成本调查
- 这个累加器怎么写?
- 请问如何调用输入的数字的每一位啊?
- 如何获得工程引用的jar包下的所有类的Class对象?
- 求助~AIX-UNIX下,java程序中如何调用一个shell命令?比如whoamI,并返回值~ 谢谢高手帮忙啊
- 谁能提过个java做的CRM看看??
- Jbuilder6中如何自动排版Java的格式
- manifest的格式
- 何处可下JBuilder
- 问一个简单的问题,我装了oracle 8.05,我并没有发有发现JDBC这个目录,是不是我要下载jdbc for oracle。
- 如何实现方法的“反射”
- java+jsp如何连接到打印机并打印jsp页面上读出的数据
用BigDecimal吧
如果对精度要求高可以使用bigDecimal和bigInteger
我是这样处理的,把整数和小数分开考虑,因为人民币包含的只有分和角,所以分开。
但是,当把数字传进的时候类型的定义就比较麻烦,如果是float可以直接处理到角,但是分还是老错。