1樓:義烏人才網
要用printf格式化輸出。
php好像不需要強制轉化型別,會自動轉化的。
2樓:手機使用者
php好像不需要強制轉化型別,會自動轉化的。
3樓:匿名使用者
number_format($score,'2','.',',')
4樓:愛笑的柯南推理
這裡以c語言的浮點數為例,在ieee浮點標準下,整數轉換為浮點數的過程做一些直觀的分析和具體的實現,ieee浮點數的標準細節詳見(http://en.wikipedia.
org/wiki/ieee_754-2008)。
在c語言中,使用float和double型別資料分別對應單精度和雙精度的浮點格式。以float為例,由於float是32位,int在32位機器上也是32位。因此,float必然不能對所有的int進行準確的表示。
實際上,在數軸上,浮點數所能表示的數呈非均勻的分佈。舉例如下圖。
. . -3 .
. . .
-2 . . .
-1..........0.........1..
. . .
2 . . .
3. .
圖中的點代表float可表示的數,可以看出,在所能表示的數中,接近0的比較密集,遠離0的則步長逐漸增大。具體的步長可以根據浮點數標準算出。
以float為例,符號位1位,階碼8位,位數23位。由ieee浮點的標準可知,非規格化數表示那些非常接近0.0的數。這時候,階碼域全為0.因此,非規格化數的步長為
2-23×2-127 ≈ 1.4×10-45
而非規格化數的範圍則約等於 -1.2×10-38 到1.2×10-38 在這個範圍內,float能表示的數呈均勻分佈。
而int則處在規格化數的範圍內。對於規格化數,步長不均勻。步長可表示為
2-23×2e
其中,e的取值範圍是-126~+127。顯然,隨著e增大,步長增大。因此,對於越遠離0的區域,步長越大。當e = 30時,步長為128。如下程式是一個驗證。
其中,浮點數表示2的30次方,剛階碼值e=30,程式中a陣列記錄x每次加一的結果,從輸出中可以看出,因為步長為128,在0-64次相加中,並沒有改變a[i]的值,而在後64次相加中,a[i]則保持為2的30次方+128。
因此,除了不均勻的步長以外,還需要考慮的是舍入的問題。由上面的測試中可知,c語言的舍入方法中,若整數處於步長的前半,則向下舍入,否則向上舍入。而對於剛好處於中間的數,例如上圖中a[64],這種與前後的可取的數距離相等,則採用向偶數舍入的原則。
即取表示成float形式後,最後一位為偶數(0)的數。
分析到此,開始實現,說白的就是實現一個 float f = float(integer)的功能。函式原型如下:
unsigned float_itof(int i)
把整數i轉換為float的表示形式,然後返回對應的4個位元組。函式中不能使用float型別及其運算。
**如下:
[cpp] view plain copy
unsigned float_i2f(int i)
unsigned x,e,e;
int count;
unsigned j;
unsigned low,high;
count = 0;
x = 0;
if(i==0)
return x;
//float不採用補碼,正負數根據第一位符號位決定
if(i<0)
i = -i;
x = x|0x80000000;
j = i;
//整數均為規格化數,先進行移位
j = j<<1;
count++;
j=j<<1;
//求出階碼
e = 32-++count;
e = e+127;
//小於2的24次方,把階碼和有效位填入,完成
if((i&0xff000000)==0)
x = x|(e<<23);
x = x|(j>>9);
return x;
//大於2的24次方,要進行舍入
else
j=j>>count;
//high low即進位或捨去尾數
low = j&(~((1<<(e-23))-1));
high = low+(1<<(e-23));
//偶舍入原則
if(j-low>high-j)
j = high;
else if(j-lowj = low;
else if((low&(1<<(e-23)))==0)
j = low;
else
j = high;
if((((low>>
e++;
//填入各位,完成
x = x|(e<<23);
x = x|((j>>(e-23))&0x7fffff);
對輸入i進行 int_min 到 int_max的範圍測試,與float(i)的結果逐位元組比較。**正確。
閱讀更多
php怎麼強制轉換浮點成整形
5樓:良玉小帝
浮點轉換成整型有三種函式
1、floor ( float value) 捨去法取整又稱向下取整,將小數部分捨去取整
<?php
echo floor(6.1); //結果是6echo floor(6.9);//結果是6?>
2、ceil 進一法取整,有小數部分則進一位<?php
echo ceil(6.1); //結果是7echo ceil(6.9);//結果是7?>
3、round 浮點數進行四捨五入
<?php
echo round(6.1); //結果是6echo round(6.9);//結果是7?>
php中整形轉換為浮點型,並精確的小數點後兩位
6樓:it互聯天下
php 中sprintf函式可以將整數格式化為浮點格式。比如格式化引數:%nf;其中,n 表示小數點後的位數。比如:
<?php
$num=9.8;
$res=sprintf("%.2f", $num);
//輸出:9.80
?>
7樓:
試試看吧,number_format(10000, 2, '.', '');//10000.00
php中浮點型怎樣轉化成整型
8樓:匿名使用者
浮點轉換成整型有三種函式
1、floor ( float value) 捨去法取整又稱向下取整,將小數部分捨去取整
<?php
echo floor(6.1); //結果是6echo floor(6.9);//結果是6?>
2、ceil 進一法取整,有小數部分則進一位<?php
echo ceil(6.1); //結果是7echo ceil(6.9);//結果是7?>
3、round 浮點數進行四捨五入
<?php
echo round(6.1); //結果是6echo round(6.9);//結果是7?>
php中如何把零轉化為浮點數0.00?
9樓:優百文
php中需要格式化
$a=0;
$b=0.9;
echo number_format($a,2);
echo "---";
echo number_format($b,2);
10樓:
number_format函式
如$a=0;
echo number_format($a, 2);//第二個引數 為保留多少位小數
php怎麼將16進位制浮點型數字轉為十進位制
11樓:匿名使用者
步驟:1、234.324轉換為二進位制 11101010.01010…… 這會損失精度,別說不知道
然後科學計數法表示為,1.1101……*2^72、127+指數7 二進位制為100001103、【1101……】,0表示正數,中間為2步驟的二進位制,後面為23位科學計數法中的小數點後數字,不足後面補0
4,每4位轉換到一個16進位制數,0100 0011 0110 ……轉換
4 3 6 ……
怎麼用C語言將英文月份轉換為數值月份
scanf s d d m,day,year int t 1 避免他預設為0.int month t strcmp jan m 判斷兩個字串是否相等,相等就返回一個0.if t 0 怎麼組織下,你自己看吧 呼叫日期函式直接獲取當前日期,結果可以為數值。如果自己定義,可以考慮用列舉型別一一對映。c語言...
如何把EXCEL用公式計算的數轉換為可以複製貼上的數呢
選擇性貼上為 數值 如圖所示 試試吧,但願能夠幫助您!公式計算完的數,你複製一下,貼上時,選擇 選擇性貼上 選一下項 數值 就可以。複製 在所在貼上的單元格右鍵單擊 選擇性貼上 數值。使用選擇性貼上 數值 excel版本參考 2010 1 選中公式區域 2 右擊 複製 3 右擊選擇性貼上 數值 右擊...
我用wps將轉換為pdf後,為什麼有部分文字看不到
軟體故障,或者文字顯示不正常,換用其他字型來顯示 更換顯示pdf的軟體 更換doc2pdf軟體,推薦用adobe的acro bat軟體 具體問題搞不清,但是建議你以後用 foxit reader轉換。pdf檢視器存在點小問題,更換好的檢視器 強烈推薦用adobe acrobat 你好,wps2019...