Προς το περιεχόμενο
  • 0
Συνδεθείτε  
Uberalles_gr

Μετατροπή αριθμού σε λέξεις

Ερώτηση

Καλησπέρα,

 

θέλω να βάζω αριθμούς και να μου το βγάζει ολογράφως.

 

π.χ. 5.632 => πέντε χιλιάδες και εξακόσια τριάντα δύο

π.χ. το 125.765 => εκατό είκοσι πέντε χιλιάδες και εφτακόσια είκοσι πέντε

 

Υπάρχει κάτι τέτοιο διαθέσιμο;

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

2 απαντήσεις σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

  • 0

Γι' αυτό χάθηκες εσύ ρε, επιταγές κόβεις;! :lol:

Κοίτα αυτό: http://www.jaygilford.com/php/number-to-text-converting-php-class/ ή αυτό: http://bloople.net/num2text/cnumlib.txt

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

χαχαχαχαχαχ

 

Σε ευχαριστώ για τα links, μόνο που είναι στα αγγλικά.

 

Παρακάτω είναι ο κώδικας για τα Ελληνικά:

<?php
/**
 * Takes a (integer/float) number as argument and returns a word representation
 * of the number in Greek.
 */
function SayEuro($curAmount){
  $bFemale = FALSE;
  if($curAmount > 999999.99 || $curAmount < -999999.99) {
    return 'Αδύνατη η μετατροπή αριθμού σε ολογράφως';
  }
  $sResult = '';
  if($curAmount < 0){
    $sResult = 'Μείον ';
    $curAmount = abs($curAmount);
  }
  $sResult .= SayNumber((int)$curAmount, $bFemale) . 'Ευρώ';
  if($curAmount - (int)$curAmount > 0) {
    $sResult .= ' και ' . SayNumber(100 * ($curAmount - (int)$curAmount), $bFemale) . 'Λεπτά';
  }
  return $sResult;
}
 
function SayNumber($curAmount, &$bFemale) {
    $sResult = '';
    $lAmount = round($curAmount, 0);
    $tmp = 0;
 
    // Uniques & decimals.
    $tmp = intval(substr($lAmount, -2));
    if($lAmount == 0) {
      $sResult = 'Μηδέν ';
    } elseif($tmp < 20) {
      $sResult .= ($sResult == '')?'':' ' . ($bFemale)?SayUniqueFemale($tmp):SayUnique($tmp) . ' ';
    }else{
      $sResult .= SayTens($tmp) . ' ';
      if(intval(substr(strval($tmp), -1)) > 0) {
        $tmptmp = substr(strval($tmp), 1);
        $sResult .= ($bFemale)?SayUniqueFemale($tmptmp):SayUnique($tmptmp) . ' ';
      }
    }
 
    $lAmount -= $tmp;
 
    // Hundreds.
    $tmp = substr($lAmount, -3);
    if($tmp > 100 || ($tmp == 100 && $sResult != '')) {
      $sResult = (($bFemale)?SayHundredsFemale($tmp):SayHundreds($tmp)) . ' ' . $sResult;
    }elseif($tmp == 100 && $sResult == '') {
      $sResult = 'Εκατό';
    }
    $lAmount -= $tmp;
 
    // Thousands.
    if($lAmount >= 1000) {
      $sResult = SayThousands($lAmount, $bFemale) . ' ' . $sResult;
    }
    $bFemale = FALSE;
    return $sResult;
}
 
function SayUnique($iNumber) {
  $vardigit = array('Ένα', 'Δύο', 'Τρία', 'Τέσσερα', 'Πέντε', 'Έξι', 'Επτά',
    'Οκτώ', 'Εννέα', 'Δέκα', 'Ένδεκα', 'Δώδεκα', 'Δεκατρία', 'Δεκατέσσερα',
    'Δεκαπέντε', 'Δεκαέξι', 'Δεκαεφτά', 'Δεκαοχτώ', 'Δεκαεννιά');
  if($iNumber > 0){
    return $vardigit[$iNumber - 1];
  }
}
 
function SayTens($iNumber) {
  $vardigit = array('Δέκα', 'Είκοσι', 'Τριάντα', 'Σαράντα', 'Πενήντα', 'Εξήντα',
    'Εβδομήντα', 'Ογδόντα', 'Ενενήντα');
  return $vardigit[$iNumber/10 - 1];
}
 
function SayHundreds($iNumber) {
  $vardigit = array('Εκατόv', 'Διακόσια', 'Τριακόσια', 'Τετρακόσια',
    'Πεντακόσια', 'Εξακόσια', 'Επτακόσια', 'Οκτακόσια', 'Εννιακόσια');
  return $vardigit[$iNumber/100 - 1];
}
 
function SayThousands($iNumber, &$bFemale) {
  $bFemale = TRUE;
  return ($iNumber == 1000)?'Χίλια':(SayNumber($iNumber/1000, $bFemale).' Χιλιάδες');
}
 
function SayUniqueFemale($iNumber) {
  $vardigit = array('Μια', 'Δύο', 'Τρεις', 'Τέσσερις', 'Πέντε', 'Έξι', 'Επτά',
    'Οκτώ', 'Εννέα', 'Δέκα', 'Ένδεκα', 'Δώδεκα', 'Δεκατρείς', 'Δεκατέσσερεις',
    'Δεκαπέντε', 'Δεκαέξι', 'Δεκαεφτά', 'Δεκαοχτώ', 'Δεκαεννιά');
  if($iNumber > 0) {
    return $vardigit[$iNumber - 1];
  }
}
 
function SayHundredsFemale($iNumber) {
  $vardigit = array('Εκατόv', 'Διακόσιες', 'Τριακόσιες', 'Τετρακόσιες',
    'Πεντακόσιες', 'Εξακόσιες', 'Επτακόσιες', 'Οκτακόσιες', 'Εννιακόσιες');
  return $vardigit[$iNumber/100 - 1];
}

echo SayEuro(482410);	 
?>

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε έναν λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι εύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
Συνδεθείτε  
×
×
  • Δημιουργία νέου...

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.