json-tutorial icon indicating copy to clipboard operation
json-tutorial copied to clipboard

TEST_NUMBER(0.0, "1e-10000")

Open lightjiao opened this issue 9 years ago • 4 comments

这个测试的结果会出现判断LEPT_PARSE_NUMBER_TOO_BIG的结果,做不到返回结果为0…… 是有需要特殊处理的深意,还是本身不太正确?

lightjiao avatar Sep 19 '16 17:09 lightjiao

这个测试应该是 0.01e-100001 * 10^(-10000) 的意思,是一个很小的值,double 只能表示为 0.0LEPT_PARSE_NUMBER_TOO_BIG 是在 test_parse_number_too_big() 测试的。

miloyip avatar Sep 19 '16 17:09 miloyip

看了wiki上面关于double数字的边界说明,数字的大小能理解,只是数字1e-10000在实际代码里面会因为double无法表示,所以会测试出结果是LEPT_PARSE_NUMBER_TOO_BIG而不是0.0,是需要做特殊处理么?

lightjiao avatar Sep 20 '16 07:09 lightjiao

1e-10000是一个很小的数,double表示出来就是0.0 而-1e309用double表示出来是-inf

Yuan-Hang avatar Sep 20 '16 13:09 Yuan-Hang

看了今天的代码,然后检验了一下,是因为缺少math.h 文件中HUGRVAL的 判断,这个宏定义这的好用,直接判断无穷大、无穷小了,厉害厉害

lightjiao avatar Sep 21 '16 08:09 lightjiao