-2
は、私は私のプログラムは、小数点を入力したいという意志inputed数vb.netのWindowsアプリケーションで数字を切り取る方法は?
入力四捨五入しないことにより、小数点以下4桁で出力:0.6363636364
出力:完全性については0.6363
は、私は私のプログラムは、小数点を入力したいという意志inputed数vb.netのWindowsアプリケーションで数字を切り取る方法は?
入力四捨五入しないことにより、小数点以下4桁で出力:0.6363636364
出力:完全性については0.6363
、OPが要求されたので、VBを
Module MyExtensions
<System.Runtime.CompilerServices.Extension>
Public Function TruncateDecimal(d As Decimal, decimals As Integer) As Decimal
Select Case True
Case decimals < 0
Throw New ArgumentOutOfRangeException("decimals", "Value must be in range 0-28.")
Case decimals > 28
Throw New ArgumentOutOfRangeException("decimals", "Value must be in range 0-28.")
Case decimals = 0
Return Math.Truncate(d)
Case Else
Dim IntegerPart As Decimal = Math.Truncate(d)
Dim ScalingFactor As Decimal = d - IntegerPart
Dim Multiplier As Decimal = Math.Pow(10, decimals)
ScalingFactor = Math.Truncate(ScalingFactor * Multiplier)/Multiplier
Return IntegerPart + ScalingFactor
End Select
End Function
End Module
使用法:
ソリューションは、ここで Truncate Two decimal places without roundingにティム・ロイドの回答に基づいて進延長ですDim Value As Decimal = 0.6363636364
Value = Value.TruncateDecimal(4)
[切り捨てない10進数の切り捨て]の可能な複製(http://stackoverflow.com/questions/329957/truncate-decimal-number-not-round-off) – Naruto
サラマット!!!(ありがとう) – hotchongas
@Naruto残念なことに、その 'duplicate'に関するすべての提案は、オーバーフローの可能性があります。指定された桁数に切り捨てるための最良の答えは、Tim Lloydの答えです。[小数点以下2桁を丸めずに切り捨てる](http://stackoverflow.com/a/14629365/3992902) – MrGadget