У меня очень странное поведение от некоторых C# и Excel ...Почему .Net и Excel не согласны с этой математикой?
Сделав математику самостоятельно, я считаю, что excel может дать правильный ответ, но моя математика отличная, поэтому может быть, что .Net компилятор знает что-то, чего я не знаю.
Так вот мы идем ...
Учитывая эти данные в виде листа Excel:
total sale val days irr
2431.65 2424.56 21 5.01
Формула для ВСД (ячейки D2) выглядит следующим образом:
=ROUND(100 * ((A2 - B2)/B2) * (360/C2), 2)
Когда я запускаю этот C#, я получаю результат 4.97 ...
var totalIncludingTax = 2431.65M;
var saleValue = 2424.56M;
var daysRemaining = 21;
var result = Math.Round(100.0m * ((totalIncludingTax - saleValue)/saleValue) * (360/daysRemaining), 2);
Может ли кто-нибудь объяснить, как я могу заставить C#/.Net и Excel согласиться/как я могу переписать эту формулу, чтобы они согласились?
or (decimal) 360/daysРазмер – mybirthname
Абсолютный кровавый гений !! – War