我必须解决C ++中的问题,其中我必须计算形成为10 ^ n的数字的模数。但问题是n是一个浮点数,所以如果我计算10 ^ n为pow(10.0,n)那么它可能会溢出。所以我正在寻找一种可以计算10 ^ n mod m而没有任何溢出问题的解决方案。我通常使用Python,它非常简单,我不知道如何用C ++解决。
答案 0 :(得分:-2)
如果rounding首先将小于1的数字存储在float变量中(您将通过从原始float中减去舍入变量来获取它们),然后使用舍入值进行模数。然后加上浮点变量
这会解决您的问题吗?
编辑(见评论和更好看;-))
10^7.4 = 25118864.315[...]
--> round = 25118864,
float = 0.315,
round % 6 = 2,
--> (10^7.4)%6 = 2 + 0.315 = 2.315
因为Windows的计算结果会给你