質問

私は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桁までの二重を丸めるために、より効率的な方法はありますか?

おかげ

ジョナサン

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top