数据结构与算法分析Java版练习1.3

本文介绍了一种方法,通过使用处理I/O的printDigit方法,实现了输出任意double型数值的功能,包括负数。该方法首先处理整数部分,然后定位小数点,最后输出小数部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package ch01;
/**
 * 练习1.3 只使用处理I/O的printDigit方法,编写一种方法以输出任意
 *         double型量(可以是负数)。
 */
public class EX03 {
	private static void printDigit(int i) {
		System.out.print(i);
	}
	
	private static void printOut(int n) {		
		if (n >= 10) {			
			printOut(n/10);
		}		
		printDigit(n%10);
	}

	private static void printDouble(double f) {
		//首先找出负号
		if (f < 0) {
			System.out.print('-');
			f = -f;
		}
		
		//找出小数点位置
		String value = String.valueOf(f);
		int intPart = 0, dotPart = 0;
		int dotPos = value.indexOf('.');
		if (dotPos < 0) {
			intPart = Integer.valueOf(value);
			printOut(intPart);
		} else if (dotPos == 0) {
			intPart = 0;
			dotPart = Integer.valueOf(value.substring(dotPos+1));
			printOut(intPart);
			System.out.print('.');
			printOut(dotPart);
		} else {
			intPart = Integer.valueOf(value.substring(0, dotPos));
			dotPart = Integer.valueOf(value.substring(dotPos + 1));
			printOut(intPart);
			System.out.print('.');
			printOut(dotPart);
		}		 
		System.out.println();
	}
	
	public static void main(String[] args) {
		printDouble(10.234);
		printDouble(-10000.2);
		printDouble(1000);
		printDouble(10001.0);
		printDouble(10001.1456);
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值