在ACCESS和SQL中有小数字段的设置 |
答題得分者是:huangeider
|
blade
一般會員 發表:9 回覆:5 積分:7 註冊:2004-04-14 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
引言: 请有经验的前辈指教。 在做要求运算非常精确的情况下(比如财务计算),在数据库(ACCESS或者SQL)中表示金额、单价等有小数的字段都设置成数字还是货币?若设置成数字用单精度还是双精度好?一般小数位设置几位啊?使用浮點數資料的近似值資料型別。浮點資料是近似值,其資料型別範圍無法正確代表所有的值。 一般的精確度用求精確度高的資料最好把資料設大一點(雙精確度) 在sql中可選用real和float type 精確度 儲存大小 real 7 位數 4 位元組 float 15 位數 8 位元組 也可用decimal[(p[, s])] 與 numeric[(p[, s])] 使用固定有效位數與小數位數的數字資料型別。 decimal[(p[, s])] 與 numeric[(p[, s])] 固定有效位數及小數位數的數字。若使用最大有效位數,其有效值為 - 10^38 1 到 10^38 – 1;decimal 在 SQL-92 中的同義字是 dec 和 dec(p, s)。 p (precision) 指定小數點左方及右方可儲存的十進位數總和的上限。有效位數的值可從 1 到最大有效位數。最大有效位數值為 38。 s (scale) 指定小數點右方可儲存的十進位個數總和的上限。小數位數可從 0 到 p。預設的小數位數是 0;因此 0 <= s <= p。儲存區大小上限可能不同,視有效位數的設定而定。 精確度 儲存區位元組 1 - 9 5 10-19 9 20-28 13 29-38 17sql的話一般都是用float型態來存,因real似乎不太符合需要 為了萬一設想最好設大一點的float,若是float也不符合需要那就 設decimal[(p[, s])] 或 numeric[(p[, s])] 記憶体是會佔多一些,但比起日後有數字出問題時,處理起來會簡單 的多 以上是針對sql而言,對小數位幾位一般公司各有不同,有外幣的話設 多位一點吧,瞭解公司的需求,才能解決小數位數幾位的問題,不過呢 我遇過許多公司的小數位都常會變動的,那可能就設多位一點吧!不然 的話會被追殺,而且修改程式的價位也很不好商量 access的話你可查說明文件會得知其型態的範圍 堅持從洗馬桶做起 Eric |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |