php number format decimal
How can I format the number for only showing 1 decimal place in php?
Does any one know how can I format the number and limited it to only show 1 decimal place in php?
How can I format the number 2.10 to 2.1 in php?
6 Answers 6
Use PHP’s number_format
$one_decimal_place = number_format(2.10, 1);
If you ever need to convert it back to a float:
Also, this article is a good reference for different decimal characters and separator styles.
You use the round function
Use the PHP native function bcdiv
Number format will do this for you.
you can use round() with a precision of 1, but note that some people see longer than expected result. You can also use printf() or sprintf() with a format of «%.1f»
Use number_format function. number_format(«2.10», 1) will simply do that. Here is the documentation.
Not the answer you’re looking for? Browse other questions tagged php or ask your own question.
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.9.17.40238
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Php number format decimal
В этом разделе помещены уроки по PHP скриптам, которые Вы сможете использовать на своих ресурсах.
Фильтрация данных с помощью zend-filter
Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Контекстное экранирование с помощью zend-escaper
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Подключение Zend модулей к Expressive
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Совет: отправка информации в Google Analytics через API
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Совет: активация отображения всех ошибок в PHP
При поднятии PHP проекта на новом рабочем окружении могут возникнуть ошибки отображение которых изначально скрыто базовыми настройками. Это можно исправить, прописав несколько команд.
Агент
PHP парсер юзер агента с поддержкой Laravel, работающий на базе библиотеки Mobile Detect.
number_format
number_format — Форматирует число с разделением групп
Описание
Функция принимает один, два или четыре аргумента (не три):
Если передан только один аргумент, number будет отформатирован без дробной части, но с запятой («,») между каждыми тремя цифрами.
Если переданы два аргумента, number будет отформатирован с decimals знаками после точки («.») и с запятой («,») между каждыми тремя цифрами.
Список параметров
Устанавливает число знаков после запятой.
Устанавливает разделитель дробной части.
Устанавливает разделитель тысяч.
Возвращаемые значения
Список изменений
Примеры
Пример #1 Пример использования number_format()
Во Франции обычно используются 2 знака после запятой (‘,’), и пробел (‘ ‘) в качестве разделителя групп. Этот пример демонстрирует различные способы форматирования чисел:
Смотрите также
User Contributed Notes 68 notes
It’s not explicitly documented; number_format also rounds:
I ran across an issue where I wanted to keep the entered precision of a real value, without arbitrarily rounding off what the user had submitted.
I figured it out with a quick explode on the number before formatting. I could then format either side of the decimal.
You can change %03d to %04d, etc.
Outputs a human readable number.
// Here is a function that produces the same output as number_format() but also works with numbers bigger than 2^53.
$original_number= 9223372036854775805;
echo a_number_format($original_number, 4, ‘.’,»‘»,3);
// Outputs: 9’223’372’036’854’775’805.1230
PHP: get number of decimal digits
Is there a straightforward way of determining the number of decimal places in a(n) integer/double value in PHP? (that is, without using explode )
18 Answers 18
You could try casting it to an int, subtracting that from your number and then counting what’s left.
I needed a solution that works with various number formats and came up with the following algorithms:
I used the following to determine whether a returned value has any decimals (actual decimal values, not just formatted to display decimals like 100.00):
This is procedural, kludgy and I wouldn’t advise using it in production code. But it should get you started.
Here’s a function that takes into account trailing zeroes:
If you want readability for the benefit of other devs, locale safe, use:
Solution
Explanation
In this case it’s string with three characters: 12.
preg_replace function converts these cached characters to an empty string «» (second parameter).
In this case we get this string: 1234555
strlen function counts the number of characters in the retained string.
Integers do not have decimal digits, so the answer is always zero.
Double/Float
Double or float numbers are approximations. So they do not have a defined count of decimal digits.
You can see two problems here, the second number is using the scientific representation and it is not exactly 1.2E-10.
String
For a string that contains a integer/float you can search for the decimal point:
First I have found the location of the decimal using strpos function and increment the strpos postion value by 1 to skip the decimal place.
Second I have subtracted the whole string length from the value I have got from the point1.
Third I have used substr function to get all digits after the decimal.
Fourth I have used the strlen function to get length of the string after the decimal place.
This is the code that performs the steps described above:
Show a number to two decimal places
What’s the correct way to round a PHP string to two decimal places?
The output should be 520.00 ;
How should the round_to_2dp() function definition be?
25 Answers 25
This function returns a string.
Use round() (use if you are expecting a number in float format only, else use number_format() as an answer given by Codemwnci):
Description:
Returns the rounded value of val to specified precision (number of digits after the decimal point). precision can also be negative or zero (default).
Example #1 round() examples
Example #2 mode examples
The output will be:
You can use the PHP printf or sprintf functions:
Example with sprintf :
Alternatively, with printf :
Use the PHP number_format() function.
The output will be:
It will return 5.98 without rounding the number.
For conditional rounding off ie. show decimal where it’s really needed otherwise whole number
Use the PHP number_format() function.
This will display exactly two digits after the decimal point.
Advantage:
If you want to display two digits after a float value only and not for int, then use this.
Results from the above function:
New Correct Answer
Use the PHP native function bcdiv
round_to_2dp is a user-defined function, and nothing can be done unless you posted the declaration of that function.
However, my guess is doing this: number_format($number, 2);
The rounding correctly rounds the number and the sprintf forces it to 2 decimal places if it happens to to be only 1 decimal place after rounding.
If you want to use two decimal digits in your entire project, you can define:
Then the following function will produce your desired result:
But if you don’t use the bcscale function, you need to write the code as follows to get your desired result.
This will give you 2 number after decimal.
Number without round
Adding to other answers, since number_format() will, by default, add thousands separator.
To remove this, do this:
use roud(yourValue,decimalPoint) or number_format(yourValue,decimalPoint);
number_format() return value as string with like this 1,234.67. so in this case you can not use it for addition and any calculation.
In this case round() will be better option.
Here’s another solution with strtok and str_pad:
In case you use math equation like I did you can set it like this: