csvから読み込んだ、dt1(画像のA1:C3)に対し、
C列を各々に”Sum(round(C列*0.6),1)”の計算をした合計を求めたいです。
C列*0.6の合計値は、過去のトピックを参考にさせていただき、
dt1.AsEnumerable().Sum(Function(r) Int32.Parse(r(“金額”).ToString())*0.6)
と書くことができたのですが、roundの個所がわかりません。
各々の行の結果は不要で、合計額(画像のD4)の数値だけ取得したいのですが、どのように書いたらよいかご教示いただけませんでしょうか?
よろしくお願いいたします。
lrtetala
(Lakshman Reddy)
2
Hi @Shou-kun
Can you try this
totalSum As Double = dt1.AsEnumerable().Sum(Function(r) Math.Round(Convert.ToDouble(r("Amount")) * 0.6, 1))
Regards,
lrtetala-san
Thank you for your kind! it OK for me!
1 Like
Yoichi
(Yoichi)
4
こんにちは
既に解決済みになっていますが、
もしMath.Roundメソッドで正確に四捨五入したい場合はMath.Roundメソッドの引数でMidpointRounding.AwayFromZeroを指定する必要があります。すなわち
dt1.AsEnumerable().Sum(Function(r) Math.Round(Int32.Parse(r("金額").ToString())*0.6,1,MidpointRounding.AwayFromZero))
これを指定しない場合はMidPointRounding.ToEvenが暗黙で設定されます。
これらの違いはの詳細は以下参照ください
ご参考まで
system
(system)
Closed
5
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.