У меня возникли проблемы со следующим кодом. Он не дает того же ответа в excel, что и C#, и я уверен, что правильный ответ правильный. Я уже пытался изменить целочисленные значения на двойные, добавив десятичную точку. Пожалуйста, порекомендуйте.Таблица Excel не дает того же ответа, что и программа C#
версия первенствуйте
=((1+BZ21)*BX21*CG21*(B21*1))-(0.5*BZ21*BX21*CG21*((C21*0)+(0*D21)))
C# версия
voltageVector[rows, 5] = ((1.0 + ki) * Rp * c * (ma * 1.0)) - (0.5 * ki * Rp * c * ((mb * 0.0)+ (mc * 0.0)));
Константы ки, Rp, с и ма все двойные значения точности.
ki = 0.69999999999999907;
Rp = 0.0469486290322602;
c = 60.0
ma = 2.0;
mb = 1.0;
mc = 1.0;
C# ответ
9.5775203225810763
Ответ Эксел 9.56760000000433
Какие ценности вы получаете в каждом? – adamdc78
Эта точка этой части '(0.5 * ki * Rp * c * ((mb * 0.0) + (mc * 0.0)))'? Он всегда будет давать 0, не так ли? – Loocid
Возможно, та же самая цель, что и 'ma * 1.0'. Хотя с двойной точностью это будет не точно «0» или «ма». – adamdc78