printf格式化输出的错误

printf格式化输出的错误

问题描述:

在求圆的面积中调用printf方法格式化输出时出现“ java.util.MissingFormatArgumentException: Format specifier '%17.14f'”错误提示。如果是用println方法输出就没问题,请问是怎么回事呢?

相关截图:

http://img1.sycdn.imooc.com//climg/6117378409a6526e13060185.jpg

相关代码:

public class AreaDemo {
    //求圆形面积
    public double getArea(double circleRadius){
        return 3.14 * circleRadius * circleRadius;
    }

    //求长方形面积
    public double getArea(double oblongLength, double oblongWidth){
        return oblongLength * oblongWidth;
    }


    public static void main(String[] args) {
        //定义对象
        AreaDemo area = new AreaDemo();

        //定义一个double类型的变量存放半径,并初始化
        double radius = 4.5;

        //定义两个变量存放长和宽,并初始化
        double len = 8;
        double wid = 5;

        //调用方法,求圆的面积并打印输出
//        double circleArea = area.getArea(radius);
        System.out.printf("圆的面积为: %17.14f" + area.getArea(radius));

        //调用方法,求长方形面积并打印输出
//        double oblongArea = area.getArea(len, wid);
        System.out.println("长方形的面积为:" + area.getArea(len, wid));
    }
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿园 2021-08-14 14:48:17

同学你好,这是printf是c语句中的输出语句,java中没有这样的写法哦

祝学习愉快~

  • 提问者 李泉成278 #1

    那请问Java中prinrf怎么写呢?好像我另开一个测试程序可以用😓

    2021-08-14 14:56:28
  • 好帮手慕阿园 回复 提问者 李泉成278 #2

    同学你好,这样写会将百分号%进行转义,所以出现了错误,如果只是单纯输出一句话是可以的,由于printf不是java语法,兼容性并不是很好,所以不建议同学在java中使用printf哦

    祝学习愉快~

    2021-08-14 17:39:59
  • 提问者 李泉成278 回复 好帮手慕阿园 #3

    好的,谢谢老师,我再研究研究😊

    2021-08-14 18:16:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师