 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
cmsa1123
註冊時間: 2003-06-12 文章: 6
第 1 樓
|
發表於: 星期五 八月 25, 2006 3:35 pm 文章主題: 數值 四捨五入怪怪的~~ |
|
|
CREATE CURSOR TEST(AA N(20,6),BB N(20,6))&&小數位數6+6>8
SELECT TEST
APPEND BLANK
REPLACE AA WITH 7.995600,BB WITH 4487.500000
?7.995600*4487.500000
?ROUND(7.995600*4487.500000,4)
?ROUND(7.995600*4487.500000,2)
SELECT TEST
?ROUND(AA*BB,4)
?ROUND(AA*BB,2)
執行看看八... |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 2 樓
|
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 3 樓
|
發表於: 星期五 八月 25, 2006 4:07 pm 文章主題: |
|
|
參考微軟的說明:
http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B157954
解決方案
更準確的數值四捨五入必要時使用貨幣數據類型。 但是, 使用 Currency 數據類型不修復所有捨入問題。
以下代碼示例提供解決通過 mpay 的數字內容轉換為字符串。 然後 VAL() 函數將字符串轉換為數字數據類型用於 ROUND() 函數中返回。 CLEAR
mrate = 86.173125
mhours = 24.0000
mpay = mhours * mrate
? mpay
test=STR(mpay,LEN(STR(mpay)),LEN(STR(mpay)))
? ROUND(mpay, 2)
? ROUND(VAL(test),2) _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
bin1x
註冊時間: 2004-08-27 文章: 462
第 4 樓
|
發表於: 星期一 八月 28, 2006 11:26 am 文章主題: |
|
|
我是曾經發生過 4捨不5入的情況(6,7,8,9也一樣)
如果是field 變數的話(不是field 變數呢,不太清楚呢)
應考慮decimal 的設定吧,位數不對會int(),如果是小數
根本不理人 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|