2017-08-12 13 views
1

我需要創建功能內置在以下格式來格式化實數貨幣:如何創建內置函數來將實數格式化爲貨幣?

  1. 它應包括的主要貨幣字符,如$
  2. 逗號分隔千
  3. 四捨五入到小數位數
  4. 填充首尾的零

因爲這是通過級聯美元很容易在第一部分定義的數字用數字來扼殺,之後我不知道如何繼續。請幫忙嗎?

+1

你可以使用已有的'ToString'方法用[自定義數字格式字符串](https://docs.microsoft.com/en-us/ dotnet/standard/base-types/custom-numeric-format-strings)來執行此操作。 – Blackwood

+0

非常感謝您的先生,我會嘗試一下並讓您知道。 – tim

回答

1

固定

Imports System 
Imports System.Collections 

Public Module Module1 

    Public Sub Main() 
     Console.WriteLine(Convert(12345678)) 
    End Sub 

    Function Convert(number) As String 

     Dim str as String = "" 

     While number > 0 

      str = (number MOD 1000).ToString() + str 
      number = number \ 1000 

      If number > 0 

       str = "," + str 

      End If 

     End While 

     Return "$" + str 

    End Function 

End Module 

https://dotnetfiddle.net/EYJvMC

+0

感謝主席先生的支持,但是對我來說這很複雜(我在編程時就是這樣一個noob)。順便說一下,這是HSC學生完成計算機科學和VB.NET相關課程所需的任務。希望其他學生也會發現這篇文章有用。 – tim

+0

@tim我會看看vb.net並重寫它 –

+0

@tim請參閱我的編輯。 –

0

用,「奧利弗倪」的「黑木」的幫助和我自己的經驗,我設法想出這樣的一個更方便的方式所以,希望你會發現這個很有用(請注意代碼是用VB.NET 2010快速控制檯模式編寫的):

Imports System.IO

公共模塊模塊1

Dim value, result As Decimal 

Public Sub main() 
    result = convert() 
    Console.ReadKey() 
End Sub 

Function convert() 

    Console.Write("Enter value: ") 
    value = Console.ReadLine() 
    Console.Clear() 
    Console.WriteLine("$" & value.ToString("#,###,###.00")) 
    Return value 

End Function 

前端模塊