作者iloveduck (猴子)
看板ASM
标题[问题]keil c小数位数
时间Sun Jan 1 23:06:39 2012
目前小弟在想把某个数值的每一个数字个别存起
例
float a=0.12345678,c=0;
long b=0;
main()
{
while(1)
{
a=a*10000000; // a变成1234567.8
b=a; // b变成1234567
c=b*10-a*10; //c变成8
}
}
接着把c值显示在七段上 发现不会是8
问题是出在哪呢
或者有其它方法可以直接取出小数第八位以後的方法
printf功能及怎麽使用
谢谢大家回答
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.39.177.158
※ 编辑: iloveduck 来自: 114.39.177.158 (01/01 23:25)
1F:推 lion21:C=A*10000000%10 01/01 23:35
2F:推 ksmrt0123:float的精度应不到10进位小数点後8位 01/02 14:16
3F:→ ksmrt0123:修正: float的精度只有10进位约7位数字 01/02 15:09
4F:→ iloveduck:用DOUBLE可以解决这个问题吗 01/02 15:23
5F:→ ksmrt0123:keil c51没有真正的double precision浮点数喔 01/02 17:00
6F:→ ksmrt0123:宣告double仍是32 bits, 一样是single precision 01/02 17:01
7F:→ iloveduck:所以说有效位数只有到七位没有其它方法再多吗 01/02 17:12
8F:→ iloveduck:先谢谢KS大为我解惑 01/02 17:13
9F:→ iloveduck:有效位数指的是小数位数还是有加上整数部分 01/02 17:31
10F:→ iloveduck:哪一个呢 01/02 17:32
11F:→ ksmrt0123:有效位数指整数加小数, 123.4567 = 7位 01/02 17:49
12F:→ iloveduck:感恩 01/02 18:05
13F:推 jackjack0040:早一点版本只有六位数字精确~ 01/04 13:38
14F:→ iloveduck:纳新版有支源到八位以上吗 第几版呢 01/05 01:01