decimal æ°æ®ç±»åæå¤å¯åå¨ 38 个æ°åï¼æææ°åé½è½å¤æ¾å°å°æ°ç¹çå³è¾¹ãdecimal æ°æ®ç±»ååå¨äºä¸ä¸ªåç¡®ï¼ç²¾ç¡®ï¼çæ°å表达æ³ï¼ä¸åå¨å¼çè¿ä¼¼å¼ã
å®ä¹ decimal çåãåéååæ°ç两ç§ç¹æ§å¦ä¸ï¼
• p å°æ°ç¹å·¦è¾¹åå³è¾¹æ°åä¹åï¼ä¸å
æ¬å°æ°ç¹ãå¦ 123.45,å p=5ï¼s=2ã
æå®ç²¾åº¦æ对象è½å¤æ§å¶çæ°å个æ°ã
• s
æå®å¯æ¾å°å°æ°ç¹å³è¾¹çå°æ°ä½æ°ææ°å个æ°ã
p å s å¿
é¡»éµå®ä»¥ä¸è§åï¼0 <= s <= p <= 38ã
numeric å decimal æ°æ®ç±»åçé»è®¤æ大精度å¼æ¯ 38ãå¨ Transact-SQL ä¸ï¼numeric ä¸ decimal æ°æ®ç±»åå¨åè½ä¸çæã
å½æ°æ®å¼ä¸å®è¦æç
§æå®ç²¾ç¡®åå¨æ¶ï¼å¯ä»¥ç¨å¸¦æå°æ°ç decimal æ°æ®ç±»åæ¥åå¨æ°åã
float å real æ°æ®
float å real æ°æ®ç±»å被称为è¿ä¼¼çæ°æ®ç±»åãå¨è¿ä¼¼æ°åæ°æ®ç±»åæ¹é¢ï¼float å real æ°æ®ç使ç¨éµå¾ª IEEE 754 æ åã
è¿ä¼¼æ°åæ°æ®ç±»å并ä¸åå¨ä¸ºå¤æ°æ°åæå®ç精确å¼ï¼å®ä»¬åªå¨åè¿äºå¼çæè¿ä¼¼å¼ãå¨å¾å¤åºç¨ç¨åºä¸ï¼æå®å¼ä¸åå¨å¼ä¹é´çå¾®å°å·®å¼å¹¶ä¸ææ¾ãä½ææ¶è¿äºå·®å¼ä¹å¼å¾å¼èµ·æ³¨æãç±äº float å real æ°æ®ç±»åçè¿ç§è¿ä¼¼æ§ï¼å½è¦æ±ç²¾ç¡®çæ°åç¶ææ¶ï¼æ¯å¦å¨è´¢å¡åºç¨ç¨åºä¸ï¼å¨é£äºéè¦èå
¥çæä½ä¸ï¼æå¨çå¼æ ¸å¯¹çæä½ä¸ï¼å°±ä¸ä½¿ç¨è¿äºæ°æ®ç±»åãè¿æ¶å°±è¦ç¨ integerãdecimalãmoney æ smallmone æ°æ®ç±»åã
å¨ WHERE åå¥æç´¢æ¡ä»¶ä¸ï¼ç¹å«æ¯ = å <> è¿ç®ç¬¦ï¼ï¼åºé¿å
ä½¿ç¨ float æ real åãæ好éå¶ä½¿ç¨ float å real åå > æ < çæ¯è¾ã
IEEE 754 è§æ ¼æä¾äºåç§èå
¥æ¨¡å¼ï¼èå
¥å°ææ¥è¿çå¼ãä¸èå
¥ãä¸èå
¥åèå
¥å°é¶ãMicrosoft® SQL Server™ 使ç¨ä¸èå
¥ãææçæ°å¼å¿
须精确å°ç¡®å®ç精度ï¼ä½ä¼äº§çç»å°çæµ®ç¹å¼ååãå 为浮ç¹æ°åçäºè¿å¶è¡¨ç¤ºæ³å¯ä»¥éç¨å¾å¤åæ³èå
¥è§åä¸çä»»æä¸æ¡ï¼å æ¤æ们ä¸å¯è½å¯é å°éåä¸ä¸ªæµ®ç¹å¼ã
è½¬æ¢ decimal å numeric æ°æ®
å¯¹äº decimal å numeric æ°æ®ç±»åï¼Microsoft® SQL Server™ å°ç²¾åº¦åå°æ°ä½æ°çæ¯ä¸ªç¹å®ç»åçä½æ¯ä¸åçæ°æ®ç±»åãä¾å¦ï¼decimal(5,5) å decimal(5,0) 被å½ä½ä¸åçæ°æ®ç±»åã(å æ¤å¨ç¼åå¨è¿ç¨å½ä¸ä½¿ç¨çåééç¨Real æ Float,èä¸éç¨decimalç±»å)
å¨ Transact-SQL è¯å¥ä¸ï¼å¸¦æå°æ°ç¹ç常éèªå¨è½¬æ¢ä¸º numeric æ°æ®å¼ï¼ä¸å¿
ç¶ä½¿ç¨æå°ç精度åå°æ°ä½æ°ãä¾å¦ï¼å¸¸é 12.345 被转æ¢ä¸º numeric å¼ï¼å
¶ç²¾åº¦ä¸º 5ï¼å°æ°ä½ä¸º 3ã
ä» decimal æ numeric å float æ real 转æ¢ä¼å¯¼è´ç²¾åº¦æ失ãä» intãsmallintãtinyintãfloatãrealãmoney æ smallmoney å decimal æ numeric 转æ¢ä¼å¯¼è´æº¢åºã
é»è®¤æ
åµä¸ï¼å¨å°æ°å转æ¢ä¸ºè¾ä½ç²¾åº¦åå°æ°ä½æ°ç decimal æ numeric å¼æ¶ï¼SQL Server 使ç¨èå
¥æ³ãç¶èï¼å¦æ SET ARITHABORT é项为 ONï¼å½åç溢åºæ¶ï¼SQL Server ä¼åºç°é误ãè¥ä»
æ失精度åå°æ°ä½æ°ï¼åä¸ä¼äº§çé误ã
Float çç§å¦è®¡æ°æ³ä¸å¼çé®é¢ï¼é®é¢çæ ¹æºå¨äº float ç±»åæ¬èº«æ¯ä¸ç§ä¸ç²¾ç¡®çæ°æ®è¡¨ç¤ºæ¹æ³, ä¹å°±æ¯è¯´, ä½ æ¾ä¸ä¸ªæ°æ®è¿å», æ¿åºæ¥çæ¶åå¯è½ä¼åå¨ä¸ç¹ç¹ç¹è¯¯å·®, èè¿ç¹ç¹ç¹è¯¯å·®å¨åæ°æ®æ¯è¾çæ¶åå°±ä¼å¯¼è´æ°æ®ä¸ä¸è´.
温馨提示:答案为网友推荐,仅供参考