欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php 格式化數(shù)字的時(shí)候注意數(shù)字的范圍

 更新時(shí)間:2010年04月13日 15:45:43   作者:  
因?yàn)?數(shù)據(jù)庫(kù)中 id 可能會(huì)很大 如果使用%d的話,就可能出現(xiàn)因?yàn)槌隽朔秶?而到不到正確的結(jié)果。所以,個(gè)人建議 對(duì)id進(jìn)行格式化的時(shí)候 使用%.0f 比 %d 要 好的多。
構(gòu)造sql語(yǔ)句是 比起來(lái)
復(fù)制代碼 代碼如下:

$sql = 'SELECT *
FROM sdb_comments
WHERE goods_id = '.intval($goods_id).'
AND for_comment_id IS NULL
AND object_type = ".$item."
AND disabled="false"
AND display = "true"';

我更喜歡這樣做:
復(fù)制代碼 代碼如下:

$sql = sprintf('SELECT *
FROM sdb_comments
WHERE goods_id = %.0f
AND for_comment_id IS NULL
AND object_type = "%s"
AND disabled="false"
AND display = "true"', (float)$goods_id, $item);

這個(gè)語(yǔ)句還算 簡(jiǎn)單,如果是更復(fù)雜的話,用拼接字符串的話,那簡(jiǎn)直就是一個(gè)噩夢(mèng)。

使用第二種方式的話,比較方便.但是一個(gè)小問(wèn)題:在格式化數(shù)字的時(shí)候就需要注意其取值范圍。數(shù)字操作了取值反問(wèn)。那么最后返回的sql 也不是我們需要的。

我今天做了個(gè)總結(jié):

%d: 2^31~2^31-1(-2147483648~2147483647) (將int轉(zhuǎn)化為有符號(hào)十進(jìn)制)

%b:二進(jìn)制(將int類(lèi)型的轉(zhuǎn)化為二進(jìn)制)

%c:字符(將int類(lèi)型轉(zhuǎn)化為字符)

%u: 2^32-1(0 ~ 4294967295) (將int轉(zhuǎn)化為有符號(hào)十進(jìn)制)

%f: -2^128-2^128(-3.4E38 ~+3.4E38)(將float轉(zhuǎn)化為float) 本地化

%F: -2^128-2^128(-3.4E38 ~+3.4E38)(將float轉(zhuǎn)化為float) 非本地化

%o (將int轉(zhuǎn)化為八進(jìn)制)

%s:字符串

%x:將int轉(zhuǎn)化為小寫(xiě)字母的十六進(jìn)制

%X:將int轉(zhuǎn)化為大寫(xiě)字母的十六進(jìn)制

因?yàn)?數(shù)據(jù)庫(kù)中 id 可能會(huì)很大 如果使用%d的話,就可能出現(xiàn)因?yàn)槌隽朔秶?而到不到正確的結(jié)果。所以,個(gè)人建議 對(duì)id進(jìn)行格式化的時(shí)候 使用%.0f 比 %d 要 好的多。

相關(guān)文章

最新評(píng)論