亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試將 Excel 公式轉換為 C#

嘗試將 Excel 公式轉換為 C#

C#
慕后森 2022-10-15 14:59:24
我有這個 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 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

你的變量是int值嗎?然后你必須添加一個類型轉換。請參閱C# 中的除法以獲取確切值

否則,除法將作為整數除法執行,這會分別導致每個步驟的舍入操作。


查看完整回答
反對 回復 2022-10-15
?
慕婉清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)



查看完整回答
反對 回復 2022-10-15
  • 2 回答
  • 0 關注
  • 193 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號