哪位php大神帮忙写个金币转换函数

WBOY
Freigeben: 2016-06-06 20:12:52
Original
1136 Leute haben es durchsucht

100铜币=1银 100银=1金

想写个根据多少铜币 返回相应等级的钱
比如参数为102135铜币 那就是返回10金21银35铜
比如参数为1544铜币 那就是返回15银44铜
以此类推...

php基础不扎实 不知道怎么写最精简

回复内容:

100铜币=1银 100银=1金

想写个根据多少铜币 返回相应等级的钱
比如参数为102135铜币 那就是返回10金21银35铜
比如参数为1544铜币 那就是返回15银44铜
以此类推...

php基础不扎实 不知道怎么写最精简

<code class="php">/**
 * [format_every 换算进制到指定单位]
 * @param  integer  $number [需要换算数值]
 * @param  integer $ary    [每个单位之间的进制]
 * @param  array   $units  [每个单位的描述]
 * @return [String]          [格式化结果]
 */
function format_every($number,$ary = 100,$units = array('铜', '银', '金')) {
  $format = '';
  $prev = 0;
  for($i = count($units) - 1 ; $i >= 0 ; $i--){
    if($next = floor($number / pow($ary, $i))){
      $format .= $next - $prev * $ary . $units[$i];
    }
    $prev = $next;
  }
  return $format;
}
//简单点的
print_r(format_every(12345678));//1234金56银78铜
//假如1坨=100金,则:
print_r(format_every(12345678,100,array('铜', '银', '金','坨')));//12坨34金56银78铜
//字节换算
print_r(format_every(123456789,1024,array('B', 'KB', 'MB', 'GB', 'TB', 'PB')));//117MB755KB277B
</code>
Nach dem Login kopieren

<code>function exchange($copper)
{
    $gold = (int) ($copper / 10000);
    $silver = (int) ($copper / 100 - $gold * 100);
    $copper = $copper % 100;
    
    return array($gold, $silver, $copper);
}</code>
Nach dem Login kopieren

简单做。从额数最大的金开始处理,先整除,再模除,金银铜依次处理。输出的时候判断再做个判断,代码如下:

<code><?php function level($money){
        $gold   = floor($money / 10000);
        $money  = $money % 10000;

        $sliver = floor($money / 100);
        $cu     = $money % 100;

        $result = "";
        if($gold > 0) {
            $result .= $gold ."金";
        }
        if($sliver > 0) {
            $result .= $sliver ."银";    
        }
        if($cu > 0) {
            $result .= $cu ."铜";    
        }

        return $result;
    }

    //test
    echo level(102135);
    echo "<hr>";
    echo level(1544);
    echo "<hr>";
    echo level(99);
</code>
Nach dem Login kopieren

哪位php大神帮忙写个金币转换函数

<code>function level($money){
    $ag = floor($money /100);
    $cu = $money % 100;
    $golden = floor($ag / 100);
    $ag =   $ag % 100;
    echo "{$golden}金{$ag}银{$cu}铜币";
}</code>
Nach dem Login kopieren

很简单的写了一个。

<code class="ruby">def make_change(money, coins)
  dp = [0]
  path = []
  result = {}

  coins.each_with_index do |coin, index|
    coin.upto(money) do |i|
      if !dp[i - coin].nil? && (dp[i].nil? || dp[i - coin] + 1  {1=>35, 100=>21, 10000=>10}</code>
Nach dem Login kopieren

嗯...不知道计算速度快 还是字符串截取速度快

<code><?php $money = 102135;
convert_money($money);

function convert_money($money) {
    $money = (string)$money;
    $coppers = substr($money,-2) ? substr($money,-2) : 0;
    $silver = substr($money,-4,-2) ? substr($money,-4,-2) : 0;
    $glod = substr($money,0,-4) ? substr($money,0,-4) : 0;

    echo "{$glod}金币{$silver}铜币{$coppers}银币";
}
</code></code>
Nach dem Login kopieren

结果: 10金币21铜币35银币

function change($number){

<code>    static $jin;
    static $yin;
    static $ton;
    if($number >= pow(10,4)){
        $jin = intval($number/pow(10,4));
        change($number -$jin*pow(10,4));
    }else if($number >= pow(10,2)){
        $yin = intval($number/pow(10,2));
        change($number-$yin*pow(10,2));
    }else{
        $ton = $number;
    }

    return array($jin,$yin,$ton);
}

$number = 10110245;
print_r(change($number));</code>
Nach dem Login kopieren

<code>/**
 * @param $coins int 币数
 * @return string 格式化信息
 */
function coinFormatter($coins)
{
    $coins = intval($coins);
    $jin   = intval($coins/10000);
    $yin   = intval($coins/100 - $jin*100);
    $tong = $coins%100;

    $info = '';
    if($jin>0) {
        $info = $jin . "金";
    }
    if($yin>0){
        $info = $info.$yin."银";
    }
    if($tong >0){
        $info = $info.$tong."铜";
    }

    return $info;
}

echo coinFormatter(114523);
echo "\n";
echo coinFormatter(523);
echo "\n";
echo coinFormatter(3);
/*
输出结果:
11金45银23铜
5银23铜
3铜
*/</code>
Nach dem Login kopieren

关注微信公众号php技术大全:phpgod,精彩分享每日不断。

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!