我有這個 Excel 方程,我正在努力將它轉換成 c#?!傲α俊焙汀叭罩尽辈糠肿屛医O倒了。excel方程如下:LOG((10^(PreSkillRating/400)/((-ChangeInRating/KFactor)+1)-10^(PreSkillRating/400)))*400/LOG(10)到目前為止,我有這個:Math.Log((Math.Pow(PreSkillRating / 400, 10)) / (((ChangeInRating * -1) / KFactor) + 1) - Math.Pow((PreSkillRating / 400), 10)) * 400 / Math.Log(10)我也知道,在除以停止嘗試除以零錯誤時,我必須檢查 0。例如,當我對每個變量使用以下值時,我在 excel 中得到 1879.588002 作為答案,但在 c# 中得到無窮大。PreSkillRating = 1600ChangeInRating = 50KFactor = 60我究竟做錯了什么?
2 回答

慕婉清6462132
TA貢獻1804條經驗 獲得超2個贊
根據早期的評論和我的第一個答案,讓我們總結一下:
雙除法的類型轉換
Pow 的參數順序錯誤
錯誤的方法 Math.Log(x)。您可以使用 Math.Log(x,10) 或 Math.Log10(x)
嘗試以下實現:
Math.Log10((Math.Pow(10, (double)PreSkillRating / 400)) / (((ChangeInRating * -1.0) / KFactor) + 1) - Math.Pow(10, (double)PreSkillRating / 400)) * 400 / Math.Log10(10)
- 2 回答
- 0 關注
- 193 瀏覽
添加回答
舉報
0/150
提交
取消