⑴ php將整數數字轉換為羅馬數字實例分享
方法一:自定義函數
我們可以自己手動編寫一個函數來實現此功能,這個函數可以將數字作為第一個參數,將其轉換為羅馬並返回。
註:大多數演算法只能在1-4999的范圍內工作,如果使用特大數,腳本將失敗。
實現代碼:
<?php
header("content-type:text/html;charset=utf-8");
//將數字轉換為羅馬表示形式
function
numberToRoman($num)
{
//
Be
sure
to
convert
the
given
parameter
into
an
integer
$n
=
intval($num);
$result
=
'';
//
Declare
a
lookup
array
that
we
will
use
to
traverse
the
number:
$lookup
=
array(
'M'
=>
1000,
'CM'
=>
900,
'D'
=>
500,
'CD'
=>
400,
'C'
=>
100,
'XC'
=>
90,
'L'
=>
50,
'XL'
=>
40,
'X'
=>
10,
'IX'
=>
9,
'V'
=>
5,
'IV'
=>
4,
'I'
=>
1
);
foreach
($lookup
as
$roman
=>
$value)
{
//
Look
for
number
of
matches
$matches
=
intval($n
/
$value);
//
Concatenate
characters
$result
.=
str_repeat($roman,
$matches);
//
Substract
that
from
the
number
$n
=
$n
%
$value;
}
return
$result;
}
echo
'整數數字轉換為羅馬數字:<br><br>';
//
VIII
echo
'數字8:'.numberToRoman(8).'<br>';
//
CXXIII
echo
'數字123:'.numberToRoman(123).'<br>';
//
MMCCCLV
echo
'數字2355:'.numberToRoman(2355).'<br>';
//
MMMMCMXCIX
echo
'數字4999:'.numberToRoman(4999).'<br>';
?>
輸出:
方法二:使用Romans庫
Romans庫是一個非常簡單的PHP羅馬數字型檔,允許您將整數轉換為其羅馬表示,反之亦然。
註:如果沒有該庫,請先需要安裝;安裝好Romans庫後,就能夠使用其命名空間並使用可幫助轉換數字的函數。
Romans庫包含一對簡單的過濾器,用於將具有羅馬數字的字元串轉換為表示輸入為十進制的int,將十進制int轉換為具有羅馬數字作為結果的字元串。
1、整數轉換為羅馬數字
要將整數轉換為羅馬表示,需要使用IntToRoman類,創建一個實例並從中調用filter方法。此方法將數字作為第一個參數,並返回帶有羅馬數字的字元串:
<?php
use
Romans\Filter\IntToRoman;
$filter
=
new
IntToRoman();
$result
=
$filter->filter(1999);
echo
$result;
?>
輸出:
MCMXCIX
2、羅馬數字轉換為整數
要將羅馬數字轉換為整數表示,需要使用RomanToInt類,創建一個實例並從中調用filter方法。此方法將使用羅馬數字的字元串作為第一個參數,並返回一個帶數值的整數:
<?php
use
Romans\Filter\RomanToInt;
$filter
=
new
RomanToInt();
$result
=
$filter->filter('MCMXCIX');
echo
$result;
?>
輸出:
1999
您可能感興趣的文章:PHP5中使用mysqli的prepare操作資料庫的介紹PHP中單例模式的使用場景與使用方法講解PHP自動生成縮略圖函數的源碼示例PHP添加文字水印或圖片水印的水印類完整源代碼與使用示例PHP實現對數字分隔加千分號的方法PHP生成指定范圍內的N個不重復的隨機數PHP中十六進制顏色與RGB顏色值互轉的方法Ubuntu16.04搭建php5.6Web伺服器環境PHP標准庫(PHP
SPL)詳解PHP後台備份MySQL資料庫的源碼實例
⑵ php將字元串中的阿拉伯數字轉換為中文數字
為了方便調用我喜歡使用函數的方法
<?php
functionnumToWord($num)
{
$chiNum=array('零','一','二','三','四','五','六','七','八','九');
$chiUni=array('','十','百','千','萬','億','十','百','千');
$chiStr='';
$num_str=(string)$num;
$count=strlen($num_str);
$last_flag=true;//上一個是否為0
$zero_flag=true;//是否第一個
$temp_num=null;//臨時數字
$chiStr='';//拼接結果
if($count==2){//兩位數
$temp_num=$num_str[0];
$chiStr=$temp_num==1?$chiUni[1]:$chiNum[$temp_num].$chiUni[1];
//當以1開頭都是十一,十二,以十開頭的我們就取$chiUni[i]也就是十
當不是以1開頭時,而是以2,3,4,我們取這個數字相應的中文並拼接上十
$temp_num=$num_str[1];
$chiStr.=$temp_num==0?'':$chiNum[$temp_num];
//取得第二個值並的到他的中文
}elseif($count>2){
$index=0;
for($i=$count-1;$i>=0;$i--){
$temp_num=$num_str[$i];//獲取的個位數
if($temp_num==0){
if(!$zero_flag&&!$last_flag){
$chiStr=$chiNum[$temp_num].$chiStr;
$last_flag=true;
}
}else{
$chiStr=$chiNum[$temp_num].$chiUni[$index%9].$chiStr;
//$index%9index原始值為0,所以開頭為0後面根據循環得到:0,1,2,3...(不知道為什麼直接用$index而是選擇$index%9畢竟兩者結果是一樣的)
//當輸入的值為:1003,防止輸出一千零零三的錯誤情況,$last_flag就起到作用了當翻譯倒數第二個值時,將$last_flag設定為true;翻譯第三值時在if(!$zero&&!$last_flag)的判斷中會將其攔截,從而跳過
$zero_flag=false;
$last_flag=false;
}
$index++;
}
}else{
$chiStr=$chiNum[$num_str[0]];//單個數字的直接取中文
}
return$chiStr;
}
echonumToWord(12345);
?>
結果截圖:
⑶ php 如何將 字元串 轉換為 數字
不需要轉,PHP會自動處理
⑷ php 字元串轉換成數字
整數 intval($string, 10); 第二個參數表示轉換為10進制整數
不一定是整數 floatval($string)
⑸ php 26位字母轉換成數字
<?php
$str="aa";//寫你想要算的字元串;
$v;
function getv($s){
$arr=str_split($s,1);
for ($i=0;$i<strlen($s);$i++)
{
$v=gett($arr[$i])*getw(strlen($s)-$i-1)+$v;
}
echo $v;
}
function getw($w){
$x=1;
for ($i=0;$i<$w;$i++){
$x=26*$x;
}
return $x;
}
function gett($ch){
return (ord($ch)-96);
}
echo getv($str);
?>
aa,剛好就是27.你試試吧
⑹ PHP如何格式化數字
PHP格式化數字的函數是number_format
我建議你去下載一個PHP的使用手冊,或者看網上的在線手冊也行。
http://www.itlearner.com/code/php/
關於他的用法如下:
語法: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]);
返回值: 字元串
函數種類: 數學運算
內容說明
本函數用來將浮點參數 number 格式化。若沒加參數 decimals 則返回的字元串只要整數部份,加了此參數才依參數指定的小數點位數返回。參數 dec_point 表示小數點的表示方式方法,默認值是 ".",若需要轉換成其它的小數點就可以在這個參數改掉。參數 thousands_sep 為整數部份每三位的分隔符號,默認值是 ","。本函數最特別的地方就是參數數目,最少要有一個,也就是欲格式化的字元串;也可以有二個或者四個參數,但不能用三個參數。治募�注意的是指定小數點的位數之後的數字直接舍棄,沒有四捨五入的情形。
使用範例
<?
$short_pi = "3.14159";
$my_pi = number_format($short_pi, 2);
echo $my_pi."\n"; // 3.14
$foo = 850017.9021;
$new_foo = number_format($foo, 3, ".", " ");
echo $new_foo."\n"; // 850 017.902
?>
⑺ PHP如何將從二進制文件中讀取的位元組轉換為數字
bindec函數可轉換二進制數為十進制數
⑻ php怎麼把數組里的數字值轉義成純數字
1、你可以用current來輸出:
echocurrent($_clean['ids']);
2、implode函數生成的本領就是個字元串,本來就可以用echo輸出……
⑼ PHP 怎麼用parseInt
parseInt是javascript中的函數,用於將指定進制的數字字元串轉換為十進制數字,第一個參數為待轉換的字元串,第二個參數為字元串的進制數,默認為10。
在php中如果要將字元串轉為數字,可以用intval函數:
intintval(mixed$var[,int$base=10])
通過使用指定的進制 base 轉換(默認是十進制),返回變數 var的 integer 數值。 intval() 不能用於 object,否則會產生 E_NOTICE 錯誤並返回 1。
var變數為要轉換成 integer 的數量值
base變數可選,默認為10,為轉化所使用的進制
如果 base 是 0,通過檢測 var 的格式來決定使用的進制:
如果字元串包括了 "0x" (或 "0X") 的前綴,使用 16 進制 (hex);否則,
如果字元串以 "0" 開始,使用 8 進制(octal)
否則,將使用 10 進制 (decimal)。
成功時返回 var 的 integer 值,失敗時返回 0。空的 array 返回 0,非空的 array 返回 1。
用法基本與JavaScript中的parseInt一致。
⑽ php編程:將26位字母進制轉換為10進制數字,如何做
主要是加權法。
10進制結果=∑各位上的值*(進制數^各位權值)
a^b表示a的b次方。
比如你說的26進制
a->1
s->19
d->4
那麼asd=1*(26^2)+19*(26^1)+4*(26^0)=1174(10進制)
如果是8進制數456=4*(8^2)+5*(8^2)+6*(8^0)=302(10進制)
分太少,不寫源程序了,建立索引數組$arr[a]=1$,arr[b]=2..
再把輸入的字母拆成單字元倒序數組使得$single[2]=a,$single[1]=s,$single[0]=d,按上面方法權值相加。
你懂的。