4

我正在尝试转换货币格式示例的数学结果:

Dim num1 As Integer = 2000
Dim num2 As Integer = 500

msgbox(cDbl(num1 + num2))

它只返回 2500,如果有人知道我将如何非常有帮助,我需要返回我的 2,500.00,谢谢。

4

8 回答 8

9

首先,您应该在处理货币价值时使用Decimal而不是。有一些舍入问题。DoubleDouble

其次,您可以使用字符串格式

Dim num1 As Integer = 2000
Dim num2 As Integer = 500
Diml value As Decimal = CDec(num1 + num2)
Dim formattedValue As String = String.Format("{0:n}", value)

msgbox(formattedValue)
于 2012-02-13T18:02:29.847 回答
6

MsgBox向您展示了价值,但它没有格式化它,因为您没有要求它。

如果您更进一步并将结果格式化为 string,您将获得所需的格式,例如:

Dim num1 As Double = 2000
Dim num2 As Double = 500
Dim sum As Double = num1 + num2

MsgBox(sum.ToString("0.00")) ' Adjust format string to suit
于 2012-02-13T17:58:23.360 回答
3

标准数字格式字符串

是通用数字格式的重要资源,最重要的是货币(考虑到文化差异)

“C”或“c”表示货币

  • 支持:所有数字类型。
  • 精度说明符:小数位数。
  • 默认精度说明符:由 System.Globalization.NumberFormatInfo 定义。

更多信息:货币(“C”)格式说明符。

  • 123.456(“C”,en-US)-> 123.46 美元
  • 123.456 ("C", fr-FR) -> 123,46 €</li>
  • 123.456 ("C", ja-JP) -> ¥123
  • -123.456(“C3”,en-US)->(123.456 美元)
  • -123.456 ("C3", fr-FR) -> -123,456 €</li>
  • -123.456 ("C3", ja-JP) -> -¥123.456
于 2012-02-13T17:59:30.233 回答
2

如果您希望格式为货币,则以下任何一种都可以:

    Dim num1 As Integer = 2000
    Dim num2 As Integer = 500
    MsgBox(String.Format("{0:C2}", num1 + num2))

或者

    Dim num1 As Integer = 2000
    Dim num2 As Integer = 500
    Dim sum As Integer = num1 + num2

    MsgBox(sum.ToString("C2"))
于 2012-02-13T19:53:45.210 回答
0

格式货币翻倍

value = 1500,20 TL

ctype(value, double)

return 1500,20

双重格式化货币

样本

value = 1500,1995

formatcurrency(value,2)

return = 1500,20 TL moneysembol (TL , $ ,vs..)
于 2012-12-20T17:22:18.883 回答
0
Dim num1 As Decimal = 20
Dim num2 As Decimal = 34
Dim ans As Decimal

ans = num1 + num2
MsgBox(ans.ToString("c"))
于 2020-05-05T13:33:05.333 回答
-1

看看 String.Format 文档,你会在那里找到你需要的东西。

于 2012-02-13T17:58:29.667 回答
-1

您通常不用Integer作货币值的数据类型。改为使用Double

我确信有很多方法可以将输出字符串格式化为货币值。

如果我知道的方法已经被 Rowland Shaw 解释过。所以我会跳到另一个。它是名为 的内置函数FormatCurrency。它会将字符串输出为货币值加上系统中定义的货币符号。

Dim num1 As Double = 2000
Dim num2 As Double = 500
Dim ans As Double = num1 + num2

MessageBox.Show(FormatCurrency(ans))

更多详情FormatCurrency,请看这里

于 2012-02-13T19:00:49.087 回答