输入商品名称和商品价格,要求打印效果示例, 使用前面学习的方法完成: 商品名 商品价格 网球拍 123,564.59 要求:价格的小数点前面每三位用逗号隔开。

题目

  • 输入商品名称和商品价格,要求打印效果示例, 使用前面学习的方法完成:
    1. 商品名 商品价格
    2. 网球拍 123,564.59
      要求:价格的小数点前面每三位用逗号隔开。

代码展示

package com.liquor.exam;

import java.text.NumberFormat;
import java.util.Scanner;

public class Exam5 {

    public static void main(String[] args) {
		/*
			核心.
			分析
			1. double price = 123564.59
			2. 转成String => StringBuffer
			3. 使用它的 insert
			4. 先找到 . 的 前三位, 插入
			5. (4) 是循环过程
			6. 走代码
		 */
        //1.输入一个数。
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入商品名称和商品价格(空格分开):");
        String  name = scanner.next();
        double price = scanner.nextDouble();
        //2.Double => 转成String => StringBuffer
        //String.valueOf():用于将其他数据类型转成字符串型。
        StringBuffer stringBuffer = new StringBuffer(formatDouble(price));  //new StringBuffer(String.valueOf(price));
        //5. (4) 是循环过程
        for (int i = stringBuffer.lastIndexOf(".") - 3; i > 0; i -= 3) {
            //3.使用它的 insert
            // StringBuffer.insert():向指定位置插入字符。
            // 4. 先找到 . 的 前三位, 插入
            stringBuffer.insert(i, ",");
        }
        System.out.println("商品名称\t商品价格");
        System.out.println(name + "\t" +stringBuffer);
    }

    private static String formatDouble(double d) {
        //NumberFormat.getInstance():返回指定语言环境的数字格式
        NumberFormat nf = NumberFormat.getInstance();
        //设置保留多少位小数
        nf.setMaximumFractionDigits(20);
        // 取消科学计数法
        nf.setGroupingUsed(false);
        //返回结果
        //formatDouble.format():用于将double型转成字符串。
        return nf.format(d);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

destiny- freedom

感觉怎么样呐?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值