看板 ASM 關於我們 聯絡資訊
目前小弟在想把某個數值的每一個數字個別存起 例 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)
lion21:C=A*10000000%10 01/01 23:35
ksmrt0123:float的精度應不到10進位小數點後8位 01/02 14:16
ksmrt0123:修正: float的精度只有10進位約7位數字 01/02 15:09
iloveduck:用DOUBLE可以解決這個問題嗎 01/02 15:23
ksmrt0123:keil c51沒有真正的double precision浮點數喔 01/02 17:00
ksmrt0123:宣告double仍是32 bits, 一樣是single precision 01/02 17:01
iloveduck:所以說有效位數只有到七位沒有其它方法再多嗎 01/02 17:12
iloveduck:先謝謝KS大為我解惑 01/02 17:13
iloveduck:有效位數指的是小數位數還是有加上整數部分 01/02 17:31
iloveduck:哪一個呢 01/02 17:32
ksmrt0123:有效位數指整數加小數, 123.4567 = 7位 01/02 17:49
iloveduck:感恩 01/02 18:05
jackjack0040:早一點版本只有六位數字精確~ 01/04 13:38
iloveduck:納新版有支源到八位以上嗎 第幾版呢 01/05 01:01