Так вот как я исправил проблему. Я использовал BigDecimal из JcBernack в GitHub, и это следующий код.
private BigInteger Example
{
get
{
return (BigInteger)(new BigDecimal(Int1) * Float2);
}
}
Я использовал класс BigDecimal, так как не мог умножить BigInteger на число с плавающей точкой. Кроме того, перед использованием класса я обязательно добавил заклинателя BigInteger (из комментария uhDreamer).
public static explicit operator BigInteger(BigDecimal value)
{
BigDecimal floored = value.Floor();
return floored.Mantissa * BigInteger.Pow(10, floored.Exponent);
}
И конструктор Int.
public BigDecimal(int t)
{
Exponent = 0;
Mantissa = t;
Normalize();
if(AlwaysTruncate)
{
Truncate();
}
}
Теперь разработчики, которым просто нужно умножить целые числа, могут сделать это Int1(BigInteger) * Int2
.
И, конечно же, не забудьте про пространство имен System.Numerics.