2012-02-08 1 views
0

Я хочу превратить «грязную» фигуру в правильно написанную валютную цену. Формат ввода будет примерно 23.99000, и я хочу отобразить 23,99 + символ евро.PHP number_format() decimal .99 превращен в .00

Я использую это:

$price = number_format($price, 2, ',', '')." €"; 

Но результат будет 23,00 € вместо 23,99 €.

В чем я ошибаюсь? Благодаря!

+0

Возможно, плохо округлое. Пожалуйста, покажите нам точное содержание '$ price' перед операцией. – iblue

+2

Что такое '$ price' точно? Поплавок? Строка? Покажите нам 'var_dump ($ price)'. – deceze

+0

Цена точно определяется как $ price = 23.99000 –

ответ

0

Почему бы не просто использовать раунд?

$price = round($price, 2)." €"; 
+0

Спасибо, но мне нужно использовать десятичные знаки препинания, т. Е. Запятую вместо точки. –

+0

Потому что ... он может не использовать запятую в качестве десятичного разделителя ??? – paxdiablo

+0

Нет, я имею в виду, что входные данные с разделителем десятичной дроби anglosaxon (dot), и мне нужно преобразовать его в десятичный разделитель в европе (запятую). Вот почему я использовал number_format вместо round() –

4

Попробуйте что-то вроде этого:

<?php 
$price = 23.99000; 
$price = sprintf("%01,2f", $price).' &euro;'; 
echo $price; 

Выход:

23,99 € 

f означает, что он будет рассматривать строку как поплавок, и формат соответственно.

+0

Спасибо, но, как указано ниже, мне также нужно использовать десятичный разделитель запятой, а не точку :) Во всяком случае, я решил это, я ошибочно дал номер_форматирования неправильной переменной (которая уже была отформатирована). –

+0

Извините, отредактировал код для отражения - все, что вам нужно было сделать, это изменить '.' на', ', просто. – Nick