Разбить число на цифры?

Sash [None]

Новичок
Разбить число на цифры?

Помогите, разбить число, на отдельные цифры, с которыми потом можно будет работать. Массивом там, или ещё как нить... до 5 знаков.
 

XiMiK

Новичок
Это просто. Метод такой: цифра 5673
как скажем получить тысячи?
5673 / 1000 = 5,673

Отбрасываем дробь и получаем 5
далие сотни:
5673 - 5000 = 673 /100 = 6,73
Отбрасываем дробь и получаем 6

Понятно?
 

antiportal

Guest
Re: Разбить число на цифры?

PHP:
for ($i=1; $i<=strlen($string); $i++) {
    $digits[]=substr($string, $i, 1);
}
$string - заданная строка из цифр
$digits - выходной массив цифр

Или это идиотизм?
Или я чего-то не понял?
 

XiMiK

Новичок
Автор оригинала: Sash [None]
Дробь отбрасывать floor'ом?
да

-~{}~ 24.09.04 00:03:

Автор оригинала: antiportal
Или это идиотизм?
Или я чего-то не понял?
Это идиотизм;
Ты кое-чего не понял.
С числами лучше работать как с числами, а не как со строками. Строковой тип неуместен...
 

Sash [None]

Новичок
Задача решена.. Топорным методом конечно, ну ладно. Автоматизации никакой...
var num1=Math.floor(coins/1000);
var num2=Math.floor((coins-1000*num1)/100);
var num3=Math.floor((coins-1000*num1-100*num2)/10);
var num4=Math.floor((coins-1000*num1-100*num2-10*num3));
document.number1.src=num[num1].src;
document.number2.src=num[num2].src;
document.number3.src=num[num3].src;
document.number4.src=num[num4].src;
 

XiMiK

Новичок
если подумать, то можно функцию написать, но это если ОЧЕНЬ надо.
 

Crazy

Developer
Автор оригинала: XiMiK
Ты кое-чего не понял.
С числами лучше работать как с числами, а не как со строками.
С числами нужно работать так, как удобнее и как лучше для решения задачи, а не так, как кому-то с бодуна показалось идеалогически верным. :)

-~{}~ 24.09.04 06:59:

Автор оригинала: antiportal
Или это идиотизм?
Это неэффективно реализовано. Более эффективный вариант:

Код:
<?php
$number = 111222333;

$digits = preg_split('//', $number, -1, PREG_SPLIT_NO_EMPTY);

print_r($digits);
?>
-~{}~ 24.09.04 06:59:

Автор оригинала: XiMiK
если подумать, то можно функцию написать, но это если ОЧЕНЬ надо.
Я рыдал над этой мужественной репликой...
 

XiMiK

Новичок
А на JS вроде так:

var number = "111222333";
var digits = number.match(/\d/g);
document.write(digits);

:)
 

Crazy

Developer
Автор оригинала: XiMiK
А на JS вроде так:

var number = "111222333";
Увы, родной. "111222333" есть строка, а не число. А замена на 111222333 заставит твой скрипт упасть.

Учи матчасть.
 

XiMiK

Новичок
Конвертация:

var number = '' + 111222333;
var digits = number.match(/\d/g);
document.write(digits);
 
Сверху