浮点数怎么表示精确度?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浮点数怎么表示精确度?相关的知识,希望对你有一定的参考价值。
参考技术Aprintf("%7.3f",100/3.0);表示结果占七位,小数部分占3位,这样就可以了,并且小数点后第三位是四舍五入的结果。
例如:
C语言中浮点数输出精确到两位小数的语句如下:
double a=2.0;printf ("%.2f", a);//其中.2指明两位小数
说明:如%9.2f
表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,如果9缺省则场宽为该数实际位数
规定符
%d 十进制有符号整数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 把输出的值按照%e或者%f类型中输出长度较小的方式输出
%p 输出地址符
%lu 32位无符号整数
%llu 64位无符号整数
扩展资料:
如果是实数的话,就不是这样了,机器有两种办法表示实数,一种是定点,就是小数点位置是固定的,一种是浮点,就是小数点位置不固定,计算方法也比较麻烦,通常会比整数运算代价大很多。
FPU->Floating Point Unit,浮点运算部件。
BCD->Binary Coded Decimal 压缩的二进制数,是用4个位来表示数字0~9,一个byte表示两个十进制数,比如正常二进制数1001111表示79,而BCD中用 0111 1001 来表示79。
科学计数法:a×10的n次幂的形式。将一个数字表示成 (a×10的n次幂的形式),其中1≤|a|<10,n表示整数,这种记数方法叫科学记数法。
参考资料来源:百度百科-浮点运算
JS浮点数相减出现异常数
今天小编出现一种情况在js中用0.3-0.2得出来的却不是0.1而是0.09999999999999999999998,很是纳闷,查看了很多资料才发现原来是如下原因导致的:
"浮点数”不是“实数”,浮点数有最大表示范围,在表示范围内用最接近实数的浮点数可以表示数来表示,比如
0.1是实数,意味着0.10000000…… 都是0.1,而double无法精确表示0.1,但它能精确表示 +0.1000000000000000055511151231257827021181583404541015625 ,所以它用 +0.1000000000000000055511151231257827021181583404541015625 来表示 0.1,同样:
0.1 <--> 0.1000000000000000055511151231257827021181583404541015625
0.2 <--> 0.200000000000000011102230246251565404236316680908203125
0.3 <--> 0.299999999999999988897769753748434595763683319091796875
当你用浮点数来计算时,结果也是浮点数.计算机无法精确表示的,于是它用最接近的值来表示
本文出自 “HTMLDOM” 博客,请务必保留此出处http://sucheng.blog.51cto.com/6511117/1844688
以上是关于浮点数怎么表示精确度?的主要内容,如果未能解决你的问题,请参考以下文章