double 类型的有效位
2017-07-04 11:37
495 查看
// double has 53 bit significant, therefore 2^53=9007199254740992 // is the largest integer that can be represented. For a floating // point value, that consumes more than 16 characters may result // in precision loss during conversion. Note that we are being // pessimistic in that some floating point values that consume // 17 characters may be represented without conversion loss. if ( json->cfg->decode_big_numbers_as_strings && ( endptr - json->ptr > 16 || fabs(token->value.number) > 9007199254740991.0 ) ) { token->type = T_STRING; strbuf_reset(json->tmp); for (; json->ptr != endptr; json->ptr++ ) { strbuf_append_char_unsafe(json->tmp, json->ptr[0]); } token->value.string = strbuf_string(json->tmp, &token->string_len); return; }
double类型有效位是16位,
当用double类型表示的数超过16位时,为了输出正确的值,可以转换为string类型输出
相关文章推荐
- 30位有效数字的浮点数结构解决double数据类型多次累加后的明显的误差
- java中如何使用BigDecimal使得Double类型保留两位有效数字
- double类型变量输出到文本文件(txt) 控制输出有效位数
- 关于double类型数据保留有效位的一些理解
- 取double类型的几位有效数字
- 在使用delphi中对DOUBLE类型比较问题
- 比较两个Double类型的数据
- double浮点类型计算工具类
- Double与Double类型数据相除保留小数工具
- 关于java中Double类型的运算精度问题
- double类型转int类型,精度丢失的问题
- MFC中CString转int/double/TCHAR*类型
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方
- C/C++中各种类型int、long、double、char表示范围(最大最小值)
- WPF中,一个只能输入Double类型数字的TextBox控件的类
- IOS将Int64转换为Int,Double,Float等类型
- C++ double 类型范围为什么那么大
- c语言中计算int,float,double,char四种数据类型所能表示的数据范围
- GAT项目-保险模块费用Double类型相加损失精度
- MySQL类型float double decimal的区别