- public class CalcFrac {
- public static void printFraction(double a, double b, int fracLen) {
- //处理负数
- boolean isNegative = false;
- if(a / b < 0) {
- isNegative = true;
- a = a < 0 ? -a : a;
- b = b < 0 ? -b : b;
- }
- //计算小数
- StringBuilder builder = null;
- for(int i = 0; i < fracLen; ++i) {
- double frac = a % b;
- int num = (int)(a/b);
- if(builder == null) {
- //初始化
- builder = new StringBuilder();
- //负数时添加负号
- if(isNegative) {
- builder.append("-");
- }
- //添加整数部分和小数点
- builder.append(num).append(".");
- } else {
- //添加小数部分
- builder.append(num);
- }
- a = frac * 10;
- }
- System.out.println(builder.toString());
- }
- public static void main(String[] args) {
- int a = 1, b = 3;
- if(args.length >= 2) {
- //从命里行获取数字
- a = Integer.valueOf(args[0]);
- b = Integer.valueOf(args[1]);
- }
- printFraction(a,b,1000);
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/090520149504.html
来源: http://www.codesnippet.cn/detail/090520149504.html