Java薪资计算程序抛出IllegalFormatConversionException异常,求修复
问题修复:Java薪资计算程序的IllegalFormatConversionException异常
错误原因
System.out.printf中使用的%d格式符仅适用于格式化整数类型数据,但变量pay是double类型的浮点数,类型不匹配直接触发IllegalFormatConversionException异常。
修复方案
方案一:使用浮点数格式符(推荐,符合薪资展示逻辑)
将格式符替换为%f,如果需要保留两位小数(货币展示常规要求),可使用%.2f:
public static void main(String[] args) { DaisyDriveIn m = new DaisyDriveIn(); double pay; pay = m.computePay(23); System.out.printf("Your payment is : %.2f\n", pay); }
方案二:强制转换为整数输出
若业务需求允许以整数形式展示薪资,可将pay强制转换为int类型:
public static void main(String[] args) { DaisyDriveIn m = new DaisyDriveIn(); double pay; pay = m.computePay(23); System.out.printf("Your payment is : %d\n", (int)pay); }
内容的提问来源于stack exchange,提问作者Valeryin
相关产品推荐
相关产品推荐

