|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
tsmax
註冊時間: 2006-05-07 文章: 10
第 1 樓
|
發表於: 星期一 十月 06, 2008 7:11 pm 文章主題: 关于小数精度的问题 |
|
|
m=197874.06-188044.71
?m
9829.35
?str(m,16,14)
9829.35000000001
请教高手,问什么会出现这种现象? |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 2 樓
|
發表於: 星期二 十月 07, 2008 10:46 am 文章主題: |
|
|
When storing floating-point numbers in Numeric fields, numeric precision is limited to approximately 15 digits in Visual FoxPro. Therefore, precision more than 15 digits might be lost when converting from decimal to binary numbers, storing numbers with infinitely repeating decimal values in binary, performing multiple repeated operations, and storing numeric values in Character fields and in memory variables in binary format.
在 Visual FoxPro 中,當浮點數儲存於數值欄位中,數值精確度大約被限制在 15 個位數。所以,當由小數轉換為二進位數、儲存二進位中無限重覆的小數值以及在字元欄位中與在二進位格式的記憶體變數中儲存數值時,超過 15 個位數的精確度可能會遺失。
這個限制是根據奔騰系列處理器計算與儲存浮點數的方式,以及遵循電子電機工程師學會 (IEEE) 對二進位格式中處理浮點數的浮點規格。這個標準使浮點數儲存於合理的空間容量以及更為迅速地執行計算。
因此 , 若是 ?str(m,15,14) , 則 oK |
|
回頂端 |
|
|
tsmax
註冊時間: 2006-05-07 文章: 10
第 3 樓
|
發表於: 星期四 十月 09, 2008 6:03 pm 文章主題: |
|
|
谢谢,我懂啦! |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|