Klavyeden girilen double tipi bir sayıyı iki tamsayının oranı olarak ekrana yazdıran program
Örnek:46,16==>4616/100
yardım ederseniz sevinirim
Örnek:46,16==>4616/100
yardım ederseniz sevinirim
Akış
[COLOR=blue]double[/COLOR] sayi = [COLOR=#2b91af]Convert[/COLOR].ToDouble(txtDoubleNum.Text); [COLOR=green]//girilen virgüllü sayıyı double tipli "sayi"'ya eşitliyoruz.[/COLOR]
[COLOR=blue]int[/COLOR] böllüm = 10;
[COLOR=blue]int[/COLOR] counter = 0;
[COLOR=blue]int[/COLOR] num = 0;
[COLOR=blue]while[/COLOR] ([COLOR=blue]true[/COLOR])
{
num = [COLOR=#2b91af]Convert[/COLOR].ToInt32(sayi);[COLOR=green]//girmiş olduğun sayıyı integer'a ceviriyoruz. Örnek: girilen sayi=12,98 ==> num=13 olarak cevirilecek[/COLOR] [COLOR=blue]if[/COLOR] (sayi/num==1 && counter>0)[COLOR=green]//eğer girilen sayı , int'e cevrilen "num"'a bölünüyorsa ve bu küsaratlı bir sayıysa[/COLOR]
{
[COLOR=#2b91af]MessageBox[/COLOR].Show(sayi+[COLOR=#a31515]" / "[/COLOR]+böllüm);[COLOR=green]//Ekrana 1298/1000 olarak bastıracak.[/COLOR]
[COLOR=blue]break[/COLOR];
}
[COLOR=blue]else[/COLOR] [COLOR=blue]if[/COLOR] (sayi/num==1)[COLOR=green]//ilk girilen sayi double değilse örnek: sayi=12 ise[/COLOR]
{
[COLOR=#2b91af]MessageBox[/COLOR].Show(sayi + [COLOR=#a31515]"/ 1"[/COLOR]);
[COLOR=blue]break[/COLOR];
}
[COLOR=blue]else[/COLOR][COLOR=green]//küsürattan kurtamaya çalışmak örnek: girilen sayi:12,3 ==> sayi=12,3 x 10 ==> sayi=123
[/COLOR] {
counter++;
böllüm *=10;
sayi *= 10;
}
}import javax.swing.*;
public class comma2Rational {
public String toRational (String commaSeperated){
int len = commaSeperated.length() - 1; // virgül'ü çıkarıyoruz.
int commaPos = commaSeperated.indexOf(","); //virgül'ün noktasını bulduk.
String stringBuffer = commaSeperated.replaceAll(",", ""); // sadece sayımızın tamamını aldık.
int power = len - commaPos ; //virgülden sonraki basamak sayısını hesaplıyoruz.
int a = (int) Math.pow(10,power);
stringBuffer = stringBuffer + "/" + String.valueOf(a);
return stringBuffer;
}
public static void main (String [] args){
String s = JOptionPane.showInputDialog("Kesirli sayıyı giriniz");
JOptionPane.showMessageDialog(null, new comma2Rational().toRational(s));
}
}
// System.out.println(sayiOrani(46.16));
public String sayiOrani(double d)
{
if ((d%1) == 0) return (int)(d)+" / 1"; // Kusurat Yoksa Sayiyi Int Olarak 1'e Oranla
String sayiStr = ""+d; // double'i String'e Cevir
String kusuratStr = sayiStr.substring(sayiStr.indexOf(".")+1); // Kusurat Noktasından Sonraki Bölüm
StringBuilder sb = new StringBuilder("1"); // Bolen'in Ilk Karakteri 1
for (int i = 0; i<kusuratStr.length(); i++) sb.append("0"); // Kac Kusurat Varsa Bolen String'ine O kadar 0 Ekle
return (int)(d)+kusuratStr+" / "+sb.toString(); // "4616 / 100" return Eder
}
Çerez tercihleriniz Sitenin çalışması için zorunlu çerezler kullanılır. Ölçüm ve reklam çerezleri yalnız onay verirseniz çalışır. Ayrıntılar