私のコードでは、ほぼ8つの小数点以下の変数を使用しています。 Double変数型の丸めの問題のために、正しい結果を得るためには、すべての計算の後にx = Math.Round(x、8)を使用する必要があります。カスタムデータ型 - 暗黙的な変換と演算演算子の機能を追加する方法
変数型のクラスを使用して小数点以下8桁をサポートすることができましたが、.varクラスプロパティを使用してすべてのインスタンスを参照する必要があります。
これを実装するより良い方法はありますか? 1は、暗黙的な変換と割り当ての面で固有のデータ型とは、実行と同じように、私が何をしたいのか
Public Class Double8
Private localval As Double
Public Sub New()
localval = 0
End Sub
Property var As Double
Get
Return localval
End Get
Set(value As Double)
localval = Math.Round(value, 8)
End Set
End Property
End Class
'Test rounding from below, at and above .....5
Dim n As New Double8
n.var = 0.123456789
MsgBox("0.123456789 stored as " & n.var.ToString)
n.var = 0.123456782
MsgBox("0.123456782 stored as " & n.var.ToString)
n.var = 0.123456785
MsgBox("0.123456785 stored as " & n.var.ToString)
は同じようにタイプDouble8
を使用している基本的な数学演算(乗算、除算、加算、減算)と型なしの型は、型のvar
プロパティを参照する必要があります。
これは限りスタックオーバーフローの定義が行くように、本当に問題ではありません。コードレビューの姉妹サイトを試してみることもできますか? – brichins
'Decimal'はどうですか? –