Добавьте десятичную точку 2 символа справа под PHP

Посмотрите этот вопрос:
, как можно легко проверить, запрещен ли доступ для файла в.NET?

короткая версия того вопроса - то, что Вы не делаете, потому что файловая система энергозависима. Просто попытайтесь открыть файл и поймать исключение, если это перестало работать.

причина Ваш isFileFound, метод не работает, состоит в том, потому что FileInfo структура, которую Вы используете, может также использоваться для создания файлов. Можно создать объект FileInfo с желаемой информацией для несуществующего файла, звонить, это .Create() метод, и Вы установили свои желаемые свойства внезапно.

я подозреваю причину, которую приводит к сбою путь UNC, или 1) проблема полномочий, получающая доступ к администраторской доле от пользователя, запускающего Ваше приложение, или 2) $, символ отбрасывает метод, или потому что это не вводится правильно или из-за ошибки в базовом.Exists () реализация.

Обновление:

, Когда я отправляю это предложение, я почти всегда получаю жалобу на выполнение исключения. Давайте говорить об этом. Да, обрабатывание исключений является дорогим: очень дорогой. Существует немного вещей, которые можно сделать в программировании, которые медленнее. Но Вы знаете, какой те немного вещей? Диск и сеть I/O. Вот ссылка, которая демонстрирует, какого количества стоили дисковый ввод-вывод и сеть I/O:

https://gist.github.com/jboner/2841832

Latency Comparison Numbers
--------------------------
L1 cache reference                            0.5 ns
Branch mispredict                             5   ns
L2 cache reference                            7   ns             14x L1 cache
Mutex lock/unlock                            25   ns
Main memory reference                       100   ns             20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy              3,000   ns
Send 1K bytes over 1 Gbps network        10,000   ns    0.01 ms
Read 4K randomly from SSD*              150,000   ns    0.15 ms
Read 1 MB sequentially from memory      250,000   ns    0.25 ms
Round trip within same datacenter       500,000   ns    0.5  ms
Read 1 MB sequentially from SSD*      1,000,000   ns    1    ms  4X memory
Disk seek                            10,000,000   ns   10    ms  20x datacenter roundtrip
Read 1 MB sequentially from disk     20,000,000   ns   20    ms  80x memory, 20X SSD
Send packet CA->Netherlands->CA     150,000,000   ns  150    ms

, Если взгляды в наносекундах не являются Вашей вещью, вот является другой ссылкой, которая нормализует один цикл ЦП как 1 секунду и масштабируется оттуда:

http://blog.codinghorror.com/the-infinite-space-between-words/

1 CPU cycle             0.3 ns      1 s
Level 1 cache access    0.9 ns      3 s
Level 2 cache access    2.8 ns      9 s
Level 3 cache access    12.9 ns     43 s
Main memory access      120 ns      6 min
Solid-state disk I/O    50-150 μs   2-6 days
Rotational disk I/O     1-10 ms     1-12 months
Internet: SF to NYC     40 ms       4 years
Internet: SF to UK      81 ms       8 years
Internet: SF to AUS     183 ms      19 years
OS virt. reboot         4 s         423 years
SCSI command time-out   30 s        3000 years
Hardware virt. reboot   40 s        4000 years
Physical system reboot  5 m         32 millenia

Взятие даже лучший вариант развития событий для исключений, можно получить доступ к памяти по крайней мере 480 раз при ожидании на первом ответе от диска, и это принимает очень быстрый SSD. Многим из нас все еще нужны вращающиеся жесткие диски, где вещи становятся очень, намного хуже.

И это - только начало истории. Когда Вы используете .Exists(), Вы подвергаетесь этому дополнительный стоимость (и это - дополнение: необходимо сделать ту же работу снова, когда Вы идете для открытия файла) на [1 116] каждый попытка. Вы платите, это стоит, существует ли файл или нет, потому что диск все еще должен искать его в, он - таблицы файлов. С методом исключения Вы только оплачиваете дополнительные расходы раскручивания стека вызовов в случае отказа.

, Другими словами, да: исключения являются ужасно дорогостоящими. Но по сравнению с дисковой проверкой, это еще быстрее: а не просто маленьким полем. К счастью это вряд ли определит общую эффективность Вашего приложения..., но я все еще хочу отправить "исключения спать, медленный" аргумент в пользу этой определенной задачи.

5
задан 8 October 2009 в 16:37
поделиться

3 ответа

$new_array=array();
foreach($old_array as $value)
{
   $new_array[]=number_format(($value/100),2);
}

См. number_format , если вы хотите поиграть с разделителем тысяч или чем-то еще. См. foreach , если вы хотите изменить значения массива на месте.

13
ответ дан 18 December 2019 в 11:58
поделиться

Используя number_format .

for($i=0;$i<count($array);$i++)
{
    $array[$i] = number_format($array[$i]/100,2);
    //if you need them as numbers
    $array[$i] = (float) number_format($array[$i]/100,2);
}
0
ответ дан 18 December 2019 в 11:58
поделиться

Или, если вам нравятся анонимные функции и PHP 5.3:

$nums = array(1, 2, 3, 4);
array_walk($nums, function (&$val, $key) {
    $val = number_format($val/100, 2);
});
print_r($nums);

Вывод:

Array
(
    [0] => 1.00
    [1] => 2.00
    [2] => 3.00
    [3] => 4.00
)

Тем не менее, ответ тот же: используйте number_format () .

2
ответ дан 18 December 2019 в 11:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: