我正在尝试将值1821521012635269和9000000000000000求和。
当尝试解决leetcode上的乘数问题时,这一点就出现了:
https://leetcode.com/problems/multiply-string
#include <iostream>
template<typename T>
class A
{
private:
T value;
public:
A(T v){ value = v;}
T getValue() { return value; }
};
template<typename T>
class B
{
public:
friend class A<int>;
T method(A<T> a){ return a.getValue(); }
};
int main()
{
A<int> a(2);
B<int> b;
std::cout << b.method(a) << std::endl;
}
此加法似乎导致值:10821521012635268,这是不正确的。 我以为这是一个溢出问题,但是javascript的Number.MAX_VALUE值比这大得多。知道为什么会这样吗?