2

これは明らかに機能しません。

BigInteger Total = 1000000000000000000000000000000000000000000000000000022234235423534543;
BigInteger Actual = 83450348250384508349058934085;
string Percent = ((Decimal)100.0/Total*Actual).ToString()+"%";

問題は、正確なパーセントを取得する方法です。

現在、私は..

        string sTotal = (task.End - task.Start).ToString();
        BigInteger current = task.End;

                string sCurrent = (task.End-current).ToString().PadLeft(sTotal.Length, '0');
                Int32 maxLength = sCurrent.Length;
                if (maxLength > Int64.MaxValue.ToString().Length - 1)
                    maxLength = Int64.MaxValue.ToString().Length - 1;

                UInt64 currentI = Convert.ToUInt64(sCurrent.Substring(0, maxLength));
                UInt64 totalI = Convert.ToUInt64(sTotal.Substring(0, maxLength));

                Percent = (Decimal)100.0 / totalI
                    * currentI;

より良い提案はできますか?

4

1 に答える 1