我相信这是一个非常简单的问题,但我是VB.NET的新手,所以我遇到了一个问题。在VB.NET中拆分'Decimal'
我有一个Decimal
变量,我需要将它分成两个单独的变量,一个包含整数部分,另一个包含小数部分。
例如,对于x = 12.34,您将以y = 12和z = 0.34结束。
有没有一个很好的内置函数来做到这一点,或者我必须尝试手动解决它?
我相信这是一个非常简单的问题,但我是VB.NET的新手,所以我遇到了一个问题。在VB.NET中拆分'Decimal'
我有一个Decimal
变量,我需要将它分成两个单独的变量,一个包含整数部分,另一个包含小数部分。
例如,对于x = 12.34,您将以y = 12和z = 0.34结束。
有没有一个很好的内置函数来做到这一点,或者我必须尝试手动解决它?
您可以使用Math.Truncate(decimal),然后从原始值中减去该值。要知道,这会给你两个部分为负值,如果输入的是十进制(例如-1.5 => -1,-0.5)
编辑:这里是它采用十进制各地的Eduardo的代码版本:
Sub SplitDecimal(ByVal number As Decimal, ByRef wholePart As Decimal, _
ByRef fractionalPart As Decimal)
wholePart = Math.Truncate(number)
fractionalPart = number - wholePart
End Sub
(正如Jon Skeet所说的),要小心小数的整数部分可以大于一个整数,但是这个函数会给你带来想法。
Sub SlipDecimal(ByVal Number As Decimal, ByRef IntegerPart As Integer, _
ByRef DecimalPart As Decimal)
IntegerPart = Int(Number)
DecimalPart = Number - IntegerPart
End Sub
如果您使用的是大数字,请使用Jon版本。
简单:
DecimalNumber - Int(DecimalNumber)
小数可以去整数(和长)的范围之外的方式 – 2008-12-12 10:52:09
是的,但它只是想法 – 2008-12-12 10:56:06