質問
私はQuickbooksの統合アプリで請求書を生成するQBFCを使用しています。私はプログラムで生成された二重を入力しようとすると、私は(ダブルとしてval)でlineItem.Amount.SetValueためにスローされた例外を取得しています。
以下にはない仕事ます:
lineItem = invoice.ORInvoiceLineAddList.Append.InvoiceLineAdd
Dim amount as Double
amount = summary.dailySold * summary.dailyRate
loggingTxtBox.AppendText("Amount is " & amount & vbNewLine)
lineItem.Amount.SetValue(amount)
私が受け取る例外はあります System.Runtime.InteropServices.COMException(0x80040305):無効な金額形式。 Interop.QBFC8.IQBAmountType.SetValue(ダブルval)での
次のような作品ます:
lineItem.Amount.SetValue(20.3)
任意の提案ですか? .NETは、ハードコーディングされたプログラムによって算出された1以上の二重違った?
interprettingされますThanks- ジョナサン
解決
はそれを発見しました。
"量" をプリントアウトは、21.3
示しました。しかし、デバッガ「量」を使用して、実際に21.299999999997を含んでいました。値の代入は2つのだけ小数点ポイントとダブルスを受け付けます。
これはトリックをしました
amount = CDbl(amount.ToString("F"))
は2桁までの二重を丸めるために、より効率的な方法はありますか?
おかげ
ジョナサン
所属していません StackOverflow