Nasıl yapılır: sayı bir kesir görüntüleme

Makale çevirileri Makale çevirileri
Makale numarası: 185479 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, "bir b/c" forma bir ondalık kesir dönüştürmek için üç yordamlar sağlar.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; satılabilirlik ve/veya belirli bir amaca uygunluk da dahil, ancak bununla sınırlı olmamak kaydıyla, örtülü veya açık garanti vermez. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek uzmanları, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.
Programlama deneyiminiz kısıtlıysa, bir Microsoft Sertifikalı İş Ortağı'na veya Microsoft Danışmanlık Hizmetleri'ne başvurabilirsiniz. Daha fazla bilgi için şu Microsoft Web sitelerini ziyaret edin:

Microsoft Partner - https://partner.microsoft.com/global/30000104 Onaylandı

Microsoft danışma belgesi Hizmetleri - http://support.microsoft.com/gp/advisoryservice

Kullanılabilir destek seçenekleri ve Microsoft'a başvurma konusunda daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMSÇoğu durumda, ondalık değer, formdaki bir kesir olarak çıktı yapabilmek kullanışlı olur "bir / b" veya "bir b/c". Bu makalede, bu işlevi yerine üç yordamlar sağlar.
Function        Description
--------        -----------

Frac2Num        Returns a normalized fraction with the denominator in the
                range of 2..8.

Frac2NumA       Returns a non-normalized fraction with the denominator you
                specify.

Frac2NumB       Returns a normalized fraction based on a denominator you
                specify.
				
Normalleştirilmiş bir kesri olası en küçük payda değeri içerir. (En büyük ortak çarpanı) GCF() işlevi normalleştirme işleminde kullanılır.

ÖRNEK

Non-normalleştirilmiş: 4/6
Normalleştirilmiş: 2/3

Örnek kod

  1. Yeni bir proje oluşturmak ve bu modül için aşağıdaki kodu ekleyin:
          Function Num2Frac (ByVal X As Double) As String
          Dim Fixed As Double, Temp As String
            X = Abs(X)
            Fixed = Int(X)
            If Fixed > 0 Then
              Temp = CStr(Fixed)
            End If
            Select Case X - Fixed
              Case .1 To .145
                Temp = Temp + " 1/8"
              Case .145 To .182
                Temp = Temp + " 1/6"
              Case .182 To .225
                Temp = Temp + " 1/5"
              Case .225 To .29
                Temp = Temp + " 1/4"
              Case .29 To .35
                Temp = Temp + " 1/3"
              Case .35 To .3875
                Temp = Temp + " 3/8"
              Case .3875 To .45
                Temp = Temp + " 2/5"
              Case .45 To .55
                Temp = Temp + " 1/2"
              Case .55 To .6175
                Temp = Temp + " 3/5"
              Case .6175 To .64
                Temp = Temp + " 5/8"
              Case .64 To .7
                Temp = Temp + " 2/3"
              Case .7 To .775
                Temp = Temp + " 3/4"
              Case .775 To .8375
                Temp = Temp + " 4/5"
              Case .8735 To .91
                Temp = Temp + " 7/8"
              Case Is > .91
                Temp = CStr(Int(X) + 1)
            End Select
            Num2Frac = Temp
          End Function
    
          Function Num2FracA (ByVal X As Double, _
                              ByVal Denominator As Long) As String
          Dim Temp As String, Fixed As Double, Numerator As Long
            X = Abs(X)
            Fixed = Int(X)
            Numerator = Int((X - Fixed) * Denominator + .5) ' Rounding
            If Numerator = Denominator Then
              Fixed = Fixed + 1
              Numerator = 0
            End If
            If Fixed > 0 Then Temp = CStr(Fixed)
            If Numerator > 0 Then
              Temp = Trim$(Temp & " " & Numerator & "/" & Denominator)
            End If
            Num2FracA = Temp
          End Function
    
          Function Num2FracB (ByVal X As Double, _
                              ByVal Denominator As Long) As String
          Dim Temp As String, Fixed As Double, Numerator As Long
          Dim Factor As Long
            X = Abs(X)
            Fixed = Int(X)
            Numerator = Int((X - Fixed) * Denominator + .5)  ' Rounding
            If Numerator = Denominator Then
              Fixed = Fixed + 1
              Numerator = 0
            End If
            If Fixed > 0 Then
              Temp = CStr(Fixed)
            End If
            If Numerator > 0 Then
              Factor = GCF(Numerator, Denominator)  ' Factor for normalization.
              Temp = Trim$(Temp & " " & Numerator / Factor & "/" & _
                           Denominator / Factor)
            End If
            Num2FracB = Temp
          End Function
    
          Function GCF (ByVal X As Long, ByVal Y As Long) As Long
          '
          ' Returns the Greatest Common Factor.
          ' The largest number that will evenly divide into both X and Y.
          '
          Dim Temp As Long
            X = Abs(X)        ' Make both numbers positive.
            Y = Abs(Y)
            Temp = X Mod Y
            Do While Temp > 0
              X = Y
              Y = Temp
              Temp = X Mod Y
            Loop
            GCF = Y
          End Function
    						
  2. Projeyi çalıştırın ve duraklatmak için CTRL + BREAK tuşlarına basın.
  3. Debug/hemen penceresinde aşağıdakini yazın:
    ? Num2Frac(3.54), Num2FracA(3.54,8), Num2FracB(3.54,8)
    Sonuçlar:
    3 1/2
    4 3/8
    3 1/2

Referanslar

Visual Basic for Applications Yardım alma hakkında daha fazla bilgi için lütfen Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
163435VBA: Kaynaklar Visual Basic for Applications programlama

Özellikler

Makale numarası: 185479 - Last Review: 23 Kasım 2006 Perşembe - Gözden geçirme: 2.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic for Applications 5.0
Anahtar Kelimeler: 
kbmt kbcode kbhowto kbinfo KB185479 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:185479
Kullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com