[問題]keil c小數位數

看板ASM (組合語言)作者 (猴子)時間13年前 (2012/01/01 23:06), 編輯推噓3(3011)
留言14則, 4人參與, 最新討論串1/1
目前小弟在想把某個數值的每一個數字個別存起 例 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)

01/01 23:35, , 1F
C=A*10000000%10
01/01 23:35, 1F

01/02 14:16, , 2F
float的精度應不到10進位小數點後8位
01/02 14:16, 2F

01/02 15:09, , 3F
修正: float的精度只有10進位約7位數字
01/02 15:09, 3F

01/02 15:23, , 4F
用DOUBLE可以解決這個問題嗎
01/02 15:23, 4F

01/02 17:00, , 5F
keil c51沒有真正的double precision浮點數喔
01/02 17:00, 5F

01/02 17:01, , 6F
宣告double仍是32 bits, 一樣是single precision
01/02 17:01, 6F

01/02 17:12, , 7F
所以說有效位數只有到七位沒有其它方法再多嗎
01/02 17:12, 7F

01/02 17:13, , 8F
先謝謝KS大為我解惑
01/02 17:13, 8F

01/02 17:31, , 9F
有效位數指的是小數位數還是有加上整數部分
01/02 17:31, 9F

01/02 17:32, , 10F
哪一個呢
01/02 17:32, 10F

01/02 17:49, , 11F
有效位數指整數加小數, 123.4567 = 7位
01/02 17:49, 11F

01/02 18:05, , 12F
感恩
01/02 18:05, 12F

01/04 13:38, , 13F
早一點版本只有六位數字精確~
01/04 13:38, 13F

01/05 01:01, , 14F
納新版有支源到八位以上嗎 第幾版呢
01/05 01:01, 14F
文章代碼(AID): #1F07Q10d (ASM)
文章代碼(AID): #1F07Q10d (ASM)