json-tutorial
json-tutorial copied to clipboard
TEST_NUMBER(0.0, "1e-10000")
这个测试的结果会出现判断LEPT_PARSE_NUMBER_TOO_BIG的结果,做不到返回结果为0……
是有需要特殊处理的深意,还是本身不太正确?
这个测试应该是 0.0。1e-10000 是 1 * 10^(-10000) 的意思,是一个很小的值,double 只能表示为 0.0。
LEPT_PARSE_NUMBER_TOO_BIG 是在 test_parse_number_too_big() 测试的。
看了wiki上面关于double数字的边界说明,数字的大小能理解,只是数字1e-10000在实际代码里面会因为double无法表示,所以会测试出结果是LEPT_PARSE_NUMBER_TOO_BIG而不是0.0,是需要做特殊处理么?
1e-10000是一个很小的数,double表示出来就是0.0 而-1e309用double表示出来是-inf
看了今天的代码,然后检验了一下,是因为缺少math.h 文件中HUGRVAL的 判断,这个宏定义这的好用,直接判断无穷大、无穷小了,厉害厉害