1樓:陽光上的橋
微軟有病,你知道下面的程式結果是什麼嗎?
int: <%=int(23*268)%>int: <%=int(2.3*2680)%>int: <%=int(0.23*26800)%>輸出結果是:
int: 6164
int: 6163
int: 6164
為什麼2.3*2680進行int取整會被吃一個?
這裡提出一個問題,使用int、fix對表示式計算結果進行取整,可能會出現你意料之外的問題,因為計算機內部對小數的表示是使用的定點的科學記數法,比如2.3*2680的計算結果可能是6.1639999e+0003,也就是6163.
99999,這時候使用int進行取整可能會出錯,穩妥的取整方式是先四捨五入到小數點後面一位,然後再取整,方法如下:
int: <%=int(round(2.3*2680*10)/10)%>
乘以10進行四捨五入之後再除以10,表示四捨五入代小數點後面一位,然後再int或者fix取整,這樣就不會出現問題了。
2樓:0乙丁
下表是三個函式取值的對比:
x int(x) cint(x) fix(x)3.26 3 3 3
3.76 3 4 3
-3.26 -4 -3 -3
-3.76 -4 -4 -3
另外也可以試一下:round()函式
3樓:溜鬚拍馬關雲長
用cint
原因:由於資料型別不同,2.3*2680與23*268只是近似相等
4樓:斛孤俎光熙
你是取整數,它就忽略了小數點後面的資料啊!你要的是四捨五入功能吧!用formatnumber函式吧,我記得這個是四捨五入的。
<%=formatnumber(2.3*2680,0)%>好像是這樣寫的,不太記得了,你再看看!
asp 取整函式
5樓:匿名使用者
取 整 函 數
大家都知道在basic語言中,系統為我們提供了許多標準函式,而「取整函式」就是其中一個非常重要的函式。
一、 「取整函式」的格式和功能。
1、格式:int(x)
2、功能:取不大於x的最大整數
3、說明:其中int為函式名,不允許改變,x為自變數,其形式多種多樣,可以是數值常量、數值變數、數值表示式。
例如:int(3.1416)=3
int(3.8752)=3
int(-3.14)=-4
int(-3.85)=-4
從上面的題目來看,我們可以看出,對於有小數部分的正數,int
取整這後把小數部分舍掉,但不進行四捨五入,對於有小數的負數來說,int取整後並不是直接舍掉小數,而是取比其整部分小1的整數。當然了,對於真正整數來說,int之後其值不變。
二、「取整函式」的應用
1、對數值進行四捨五入運算
(1)對x值保留整數部分,小數部分四捨五入。
表示式為:int(x*100+0.5)
例如:int(3.1416+0.5)=int(3.6416)=3
int(3.8572+0.5)=int(4.3572)=4
int(-3.14+0.5)=int(-2.64)=-3
int(-3.85+0.5)=int(-3.35)=-4
通過分析上面的例子我們可能看出,用int取整函式達到四捨五入的功能,關鍵大在於這個0.5,咱們從數軸來看,對一個數加上0.5,相當於對其值向右移動0.
5,根據小數點後第一位是小於5還是大於等於5,決定了此數在向右移動過程中是否經過了一個整數,因為int函式取值為其左側的最大整數,若經過了一個整數,則結果就為這個整數,否則就和原數直接int取整結果相同。這樣就可能達到四捨五入的目的了。
(2)對x的值保留兩位小數, 對第三位小數四捨五入
表示式:int(x*100+0.5)/100
例如:int(3.1416*100+0.5)/100
=int(314.16+0.5)/100
=int(314.66)/100
=314*100
=3.14
int(3.8572*100+0.5)/100
=int(385.72+0.5)/100
=int(386.22)/100
=386/100
=3.86
這種四捨五入保留與上面1的保留只相差在小數點位置不同,我們只要想辦法改變小數點的位置就可以了,所以我們採用的方法是先對x擴大100倍,然後再按第一種方法進行取捨小數,最後再縮小100倍,這樣既可以不影響數的基本大小,又可以對其進行四捨五入。
小結1對x值保留n位小數,第n+1位小數四捨五入的一般表示式為:
int(x*10^n+0.5)/x*10^n
2、判數一個數m能否被數n整除
例如:判斷一個數的奇偶性,即是否能被2整除
m=25 m=24
m/2=12.5 m/2=12
int(m/2)=12 int(m/2)
通過上述表示式很容易得出結論:25為奇數,25/2<>int(25/2),24為偶數,24/2=int(24/2),int函式可以達到舍掉小數部分的功能,對一個數m來說,只有當m能被2整除的情況下,m/2才能等於int(m/2),所以本題表示式可以寫成:
當m/2 <>int(m/2)時,m為奇數
當m/2=int(m/2)時,m為偶數
小結2數m能被數n整除: m/n=int(m/n)
數m不能數n整除: m/n<>int(m/n)
三、 cint(x)、fix(x)的區別
三、cint(x)對x小數部分四捨五入,然後取整。
fix(x)截去小數部分取整
下表是三個函式取值的對比:
x int(x) cint(x) fix(x)
3.26 3 3 3
3.76 3 4 3
-3.26 -4 -3 -3
-3.76 -4 -4 -3 :
小結3當x>=0時,int(x)的值與其相同,
當x<0時int(x)的值總小1;
cint(x)是對x的小數部分四捨五入取整,其功能與int(x+0.5)相同
6樓:匿名使用者
function ceil(value)
dim return
return = int(value)
cei2=value-return
if cei2>0 then
ceil = return + 1
else
ceil=value+0'就是ceil=value多一個+0 強調返回值為數字型
end if
end function
我自己寫的 你測測 不行改下
asp 十位函式取整應該怎麼寫這個表示式
7樓:鴨騎鹿背
<%i=123456
j=i/10
k=round(j)
l=k*10
response.write(""&l&"")%>
asp 取整函式int 奇怪的問題
8樓:匿名使用者
你是取整數,它就忽略了小數點後面的資料啊!你要的是四捨五入功能吧!用formatnumber函式吧,我記得這個是四捨五入的。
<%=formatnumber(2.3*2680,0)%>好像是這樣寫的,不太記得了,你再看看!
9樓:匿名使用者
用math.ceiling()
該函式返回大於等於指定浮點數的最小整數
10樓:0乙丁
一. 四捨五入的函式是: round() 用法示例:
dim myvar, pi
pi = 3.14159
myvar = round(pi, 2) 'myvar 等於 3.14。
二. 四捨五入的函式還有一個 cint(), 嚴格說它是個型別轉換函式. 與 round() 不同, 它總是把小數四捨五入到最近的一個偶數. 如:
cint(0.5) = 0
cint(1.5) = 2
三. 另外還有其他取整函式, 主要是: fix, int, ceil.
fix 和 int 都是直接刪除小數部分取整的, 它們的區別在於負數, 舉例:
int(99.8) = 99
fix(99.8) = 99
int(-99.8) = -100
fix(-99.8) = -99
11樓:匿名使用者
你用round試試,這個是四捨五入的
<%=round(2.3*2680,0)%>
asp數字取整的問題?
12樓:畢幻
int()或fix()這兩個函式都可以實現,但在對負數取整時略有不同,如下,
int(-3.3)=-4 fix(-3.3)=-3
13樓:條件魚蟲
int(-3.2)=4
int(3.6)=4
fix(3.2)=4
=int()是取整函式,但是它不四捨五入,請問,要四捨五入該如何操作?
14樓:
這個問題用format方法可以輕鬆搞定。
例如format(x,"0.00") 像這樣就可以四捨五入並且保持2位小數。
2. 還有一種簡單的方法就是直接在定義變數是int+0.5,但這樣可能會出現一些小錯誤,所以還是推薦第一種方法。
3.利用math類中的round方法,舉個例子:
public static void main(string args) {
system.out.println("12.5的四捨五入值:" + math.round(12.5));
system.out.println("-12.5的四捨五入值:" + math.round(-12.5));
output:
12.5的四捨五入值:13
-12.5的四捨五入值:-12
15樓:告煦賀皓
比如說吧:精確到0.1,採用四捨六入,公式如下:
=if(even(a1*10)-a1*10=1.5,a1*10-0.5,round(a1*10,0))/10
16樓:匿名使用者
用int 的話 就 int(數字+0.5)
用format也可以輕鬆搞定。
format(a,"0.00") 這樣就四捨五入保持2位小數。
用 round() 則
debug.print round(200.5) 'return 200
debug.print round(200.56) 'return 201
debug.print round(200.56, 1) 'return 200.6
debug.print round(200.56, 2) 'return 200.56
返回一個數值,該數值是按照指定的小數位數進行四捨五入運算的結果。
語法round(expression [,numdecimalplaces])
round函式語法有如下幾部分:
部分 描述
expression 必需的。要進行四捨五入運算的數值表示式。
numdecimalplaces 可選的。數字值,表示進行四捨五入運算時,小數點右邊應保留的位數。如果忽略,則round函式返回整數。
類似int函式的向上取整函式,類似INT函式的向上取整函式
1.你的理解是對的。2.int x 不一定是向下取整,int 1.5 1,但是 1.5 應該等於 2,這才叫向下取整。3.int a1 1 這種形式是不對的。4.很多語言裡都有向下取整函式floor 和向上取整函式ceil 如果是c語言的話要注意型別轉換,一下是函式原型 include double...
SQL AVG函式取整問題
什麼資料庫?mssql update a set b cast 1.522 as int 小數會全部舍掉,四捨五入的話就用roundupdate a set b round 1.522,0 oracle中的語bai句 du 還有一zhi個連結,您可 dao以參考專一屬下 http zhidao.方法...
關於C 取整,C語言有哪些取整函式?
你說的好複雜啊。聽不懂。float 和int指的是儲存資料的方式。不是定義資料 float是分為兩個部分,一個部分用來數字,一個部門用來記小數點的位置 也就是科學計數法的一種。int沒有記小數點的部分,所以只能記整數。float b 11 就是數字為11,小數點的位置是第二個數字之後。a b 4 由...