13 Temmuz 2012 Cuma


iyi günler arkadaşlar,bu makale ile anlatmak istediğim; java programlama diliyle uğraşan ve hemen hemen her programcının başına bir kez gelen number format olayıdır...database'e kayıt ve çıkış işlemlerinde çoğunlukla karşımıza çıkan bir sorundur..mesela basit bir ürün modülü yapmak istediğimizde haliyle bu ürünün bir alış fiyatı birde satış fiyatı olacak ,hayal gücünüze kalmış... Anlatmak istediğim, aslında databasedeki ürünleri ekrana yansıtmak istediğinizde sonuçta ne görmek istiyorsunuz?? Burada daha profosyonel bir görünüm için database kaydettiğimiz sayıları gerçek para birimi şeklinde yazdırmak istiyoruz...aynı şekilde bunun tam terside aşağıdaki örneklerimizde mevcut..
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;

public class DecimalFormatExample {

     public static void main(String args[]) throws ParseException {
            double amount = 1000000000;
            NumberFormat formatter = new DecimalFormat("#,##0.00");
            Locale usa =Locale.US;//türk para birimi malesef bu şekilde bulunmadığı için getDefault() özelliğinden yararlanıyoruz :)
            String para2=NumberFormat.getCurrencyInstance(usa).format(amount);
            Locale turkishLocale = Locale.getDefault();//getDefault yapınca JVM(java virtual machine)varsayılan locale'leri başlatma sırasında otomatik ayarlar
            String para1 = NumberFormat.getCurrencyInstance(turkishLocale).format(amount);//aslında oluşturduğumuz turkishLocale nesnesi paranın sonuna eklemek istediğimiz TL simgesidir..

            System.out.println("decimal değer:" + formatter.format(amount));
            System.out.println("decimal değer:" + para1);
            System.out.println("decimal değer:" + para2);

            NumberFormat format = NumberFormat.getInstance(Locale.US);
            Number number = format.parse("835,111.2");

            System.out.println(number.doubleValue());//1.kullanım
            System.out.println(number);// 2.kullanım ...iki şekildede kullanılabilir..

            DecimalFormat format1 = (DecimalFormat) NumberFormat.getInstance(Locale.US);
            format1.setParseBigDecimal(true);
            BigDecimal number1 = (BigDecimal) format1.parse("835,111.20000");

            System.out.println("yeni değer:" + number1);

            String s = "835,111.200";
            Double d = Double.parseDouble(s.replaceAll(",", ""));
            BigDecimal value = new BigDecimal(s.replace(",", ""));

            System.out.println("yeni değer1:" + d);
            System.out.println("yeni değer2:" + value);

            String str = "5.22";
            Integer result = Float.valueOf(str).intValue();

            System.out.println("yeni değer3:" + result);
         
         }
      }
run:
decimal değer:1.000.000.000,00
decimal değer:1.000.000.000,00 TL
decimal değer:$1,000,000,000.00
835111.2
835111.2
yeni değer:835111.20000
yeni değer1:835111.2
yeni değer2:835111.200
yeni değer3:5
BUILD SUCCESSFUL (total time: 0 seconds)