南阳OJ 数字分隔(二)

来源:互联网 发布:sql语句数字进行计算 编辑:程序博客网 时间:2024/06/01 21:40

数字分隔(二)

时间限制:1000 ms | 内存限制:65535 KB
难度:3

描述

在一个遥远的国家,银行为了更快更好的处理用户的订单,决定将一整串的数字按照一定的规则分隔开来,分隔规则如下:1、实数的整数部分按照每三个数字用逗号分隔开(整数部分的高位有多余的0时,需先将多余的0过滤后,再进行数字分隔,如:0001234567 输出结果为1,234,567.00)2、小数部分保留两位小数(四舍五入)3、如果该数是负的,则在输出时需用括号将分隔后的数字括起来,例如:-10005.1645的输出结果为(10,005.16)  

输入
多组测试数据(以eof结尾),每行输入一个实数n(n的位数小于100)
输出
输出分隔后的结果
样例输入

00012345670.0000-10005.1645

样例输出

1,234,567.000.00(10,005.16)

来源
calamity_coming
上传者
ACM_孙毓阳


解题思路 : 直接使用DecimalFormat格式化输出输入字符串的信息

代码如下

    import java.io.BufferedReader;    import java.io.IOException;    import java.io.InputStreamReader;    import java.math.BigDecimal;    import java.text.DecimalFormat;    public class Main {        public static void main(String[] args) throws IOException {             DecimalFormat format = new DecimalFormat("#,##0.00");             BigDecimal decimal = null;             BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));             String temp = null;             while( (temp = reader.readLine()) !=null){                 boolean flag = true;                  //标记正负                 if(temp.startsWith("-")){                     flag = !flag;                     temp = temp.substring(1);                 }                  decimal = new BigDecimal(temp);                  if(flag){                  System.out.println(format.format(decimal));                  }else{                  System.out.println("("+format.format(decimal)+")");                  }             }             reader.close();        }    }
原创粉丝点击