私はこれのためにかなり全面的に見えましたが、実際には私が持っていた問題に向けられたような質問はありませんでしたので、以下のコード例私はこのフォーラムに投稿しました。C#:数式が機能していませんか?
こんにちは。私は最小数(3200)と最大数(4000)と3番目の数(3663)を持っています。私は3番目の数が最小数と最大数の間にあるような進展を得ようとしています。
私はより良い言葉でそれを説明します、私はそれらが始まるxpカウントを持つレベルがあります。私は次のレベルへの進歩を得ようとしています。
生の[C#の]:(3663 - 3200)/(4000 - 3200) * 100
コード:
int progression = (newXp - Convert.ToInt32(currentGrade["grade_xp_needed"]))/(Convert.ToInt32(newGrade["grade_xp_needed"]) - Convert.ToInt32(currentGrade["grade_xp_needed"])) * 100;
なぜそれが0%に戻っているが、私はまだ300を持っているか、何かXPへ行きますか?私はPHPでそれを働いてきたし、それが57%
PHPコードを返します:あなたは正しい除算結果を得るために小数に値を変換する必要があり
$progression = round(($currentXp - $currentGrade->grade_xp_needed)/($nextGrade->grade_xp_needed - $currentGrade->grade_xp_needed) * 100, 1);
これは整数除算を行います。 '(3663 - 3200)* 100 /(4000 - 3200)'を使うことができます。 –
数値を10進数または2進数に変換します。整数として343/800を分割することはできません。 –