DecimalFormat,String.format,Formatter,format

package test ;

import java.text.DecimalFormat;
import java.util.Formatter;
import java.util.Locale;

public class DADB {
 public static void main(String[]atrgs)
 {
  DecimalFormat f = new DecimalFormat("#,######.##");
  System.out.println(f.format(1254855.53434));
  System.out.println(String.format("$%.2f", 2F));
  
  StringBuilder sb = new StringBuilder();
  Formatter formatter = new Formatter(sb, Locale.US);
  System.out.println(formatter.format("PI = %20.10f", 2323233.141592653589793284));
  System.out.println(String.format("%20.10f", Math.PI).length());
 }
}

 输出结果为

1,254855.53
$2.00
PI =   2323233.1415926535
20

下面解释下

DecimalFormat:new DecimalFormat("#,######.##").format(1254855.53434);

这个是按照new DecimalFormat("#,######.##")的格式,来输出.format(1254855.53434)里的内容,所以结果为1,254855.53

formatter.format("PI = %20.10f", 2323233.141592653589793284)

输出结果为:PI =   2323233.1415926535

%20代表总共给这个字符串的空间数,可以用String.format("%20.10f", 2323233.141592653589793284).length()看到长度

如果%后的数字大于字符串长度,则不足位补空格,且右对齐

如果在%后加-,则是左对齐

如果%后的数字小于字符串长度,则自动分配跟字符串长度一样的空间数,若不加数字,则自动分配跟字符串长度一样的空间数

小数点后的数字和f代表小数点后可以有多少位

.10f为小数点后保留10位

 

黑色头发  http://heisetoufa.iteye.com

如果发现本文有误,欢迎批评指正

anr问题trace如下: "main" prio=5 tid=1 Blocked | group="main" sCount=1 ucsCount=0 flags=1 obj=0x72df6468 self=0xb400007072878c00 | sysTid=3104 nice=-2 cgrp=ssfg sched=0/0 handle=0x71230e9d28 | state=S schedstat=( 273294290029 918944300434 897810 ) utm=18065 stm=9263 core=5 HZ=100 | stack=0x7fe106e000-0x7fe1070000 stackSize=8188KB | held mutexes= at com.android.server.alarm.AlarmManagerService$DeliveryTracker.onSendFinished(AlarmManagerService.java:5798) - waiting to lock <0x09677b19> (a java.lang.Object) held by thread 281 at android.app.PendingIntent$FinishedDispatcher.run(PendingIntent.java:382) at android.os.Handler.handleCallback(Handler.java:973) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loopOnce(Looper.java:282) at android.os.Looper.loop(Looper.java:387) at com.android.server.SystemServer.run(SystemServer.java:1069) at com.android.server.SystemServer.main(SystemServer.java:677) at java.lang.reflect.Method.invoke(Native method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:983) DumpLatencyMs: 212.411 "binder:3104_E" prio=5 tid=281 Runnable | group="main" sCount=0 ucsCount=0 flags=0 obj=0x1770d568 self=0xb400006e2db00800 | sysTid=4606 nice=-2 cgrp=ssfg sched=1073741824/0 handle=0x6e0b1ab730 | state=R schedstat=( 113789554601 690500424244 405734 ) utm=6620 stm=4758 core=5 HZ=100 | stack=0x6e0b0b4000-0x6e0b0b6000 stackSize=989KB | held mutexes= "mutator lock"(shared held) at android.icu.util.Currency.getAvailableCurrencyCodes(Currency.java:200) at libcore.icu.ICU.getCurrencyCode(ICU.java:671) at java.util.Currency.getInstance(Currency.java:421) at java.text.DecimalFormatSymbols.initializeCurrency(DecimalFormatSymbols.java:933) at java.text.DecimalFormatSymbols.setCurrency(DecimalFormatSymbols.java:508) at java.text.DecimalFormatSymbols.fromIcuInstance(DecimalFormatSymbols.java:1085) at java.text.DecimalFormat.getDecimalFormatSymbols(DecimalFormat.java:2819) at java.text.SimpleDateFormat.zeroPaddingNumber(SimpleDateFormat.java:1678) at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1593) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:1117) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:1087) at java.text.DateFormat.format(DateFormat.java:333) at java.text.Format.format(Format.java:159) at com.android.server.alarm.AlarmManagerService.setImplLocked(AlarmManagerService.java:2473) at com.android.server.alarm.AlarmManagerService.setImpl(AlarmManagerService.java:2425) - locked <0x09677b19> (a java.lang.Object) at com.android.server.alarm.AlarmManagerService$4.set(AlarmManagerService.java:3103) at android.app.IAlarmManager$Stub.onTransact(IAlarmManager.java:198) at android.os.Binder.execTransactInternal(Binder.java:1523) at android.os.Binder.execTransact(Binder.java:1457) DumpLatencyMs: 84.4358这最后分析是什么结果呢
最新发布
08-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值