Tag: 两位数

获取双变量中的数字的问题

我的java程序中需要一个函数,我遇到了一个小问题。 我想查看一个’double’变量的总位数。 (例如:5应该返回1,5.0034应该返回5,而2.04应该返回3.)我的function是这样的: private int getDoubleLength (double a) { int len = 0; while (a != (int) a) { a *= 10; } while (a > 1) { len ++; a/=10; } System.out.println(String.format(“Double %f has %d digits.”,a,len)); return len; } 现在这种方法很完美,但是当我进行一些数学计算时,你会得到双重的轻微错误:我将10除以cos(60),即0,5。 答案应该是20.0,但程序给出了20.000000000000004(这个数字,我复制了它)。 我的while循环卡住,程序挂起。 有任何想法吗? (或其他检查数字数字的好方法!)