Хобрук: Ваш путь к мастерству в программировании

Можно ли получить результат типа float из суммы двух переменных целочисленного типа?

Можно ли получить результат типа float из суммы двух переменных целочисленного типа?

Пример:

1 + 2 => 3.0

Я пытался использовать number_format($result, 1) и sprintf("%.1f", $result), но тип возвращаемого значения - строка.

Кроме того, если я наберу cast для float, то возвращаемое значение будет float со значением 3, а не 3.0.

28.12.2017

  • PHP в любом случае использует приведение типов, так что тип не имеет такого значения. Не могли бы вы просто сделать $result = (float)(1 + 2) 28.12.2017
  • да, я получаю двойное значение типа 3. но возможно ли 3.00? 28.12.2017
  • Я не понимаю, какая разница? Если значение равно 3 или 3.0, это не имеет значения. Если вы отображаете значение, используйте number_format, как вы сделали, и тогда, опять же, не имеет значения, какой это тип. 28.12.2017
  • @RamKesavan Я думаю, что OP хочет объединить форматирование number_format, но сохранить тип float. 28.12.2017
  • @JustCarty спасибо. Вы понимаете мой запрос 28.12.2017
  • Однако боюсь, что это невозможно. Я пробовал все, но ничто не позволяет вам достичь этого... 28.12.2017

Ответы:


1

Я предлагаю вам .. вы можете использовать sprintf: -

$a = 1+2;
$result = sprintf("%.2f", $a); //3.00  or  $result = sprintf("%.1f", $a); //3.0
echo $result; 

Надеюсь, поможет!

28.12.2017

2

используйте floatval(); для переключения значения в плавающее

проверьте документ

также проверьте аналогичный вопрос PHP - принудительное целочисленное преобразование в float с три десятичных знака

28.12.2017

3

Ваши целочисленные переменные имеют тип int

Если вы добавите два типа int, результат неизбежно будет целочисленным.

$intOne = 1;
$intTwo = 2;

$result = $intOne + $intTwo; // = (int)3 

Вы можете легко изменить тип своего результата, но это не обязательно хорошо, если вы сохраните int в своей переменной...

$floatResult = (float) $result; // (float)3

Кроме того, если вы не знаете тип вашей переменной, вы можете использовать функцию 'floatval' (официальный документ здесь) вот так:

$floatOne = floatval('3.14'); // (float)3.14
$floatTwo = floatval("3.141 is a Pi number"); // (float)3.14

В этом случае, если вы добавите два типа flaot, результатом будет float two:

$result = $floatOne + floatTwo; // (float)6.281

Передовой опыт заключается в сохранении правильного типа в вашей переменной и в вашей базе данных (прочитайте это для получения дополнительной информации о типах и производительности)

если вы хотите просто показывать десятичные знаки после вашего целочисленного типа, вы можете использовать функцию number_format() (официальная документация здесь) вот так:

$decimalResult = number_format($floatResult, 4);
echo $decimalResult; // Show '3.0000'        ^ Number of decimals

Надеюсь я вам помог ;)

28.12.2017
Новые материалы

Как симулировать серию пенальти на Python с помощью симуляции Монте-Карло, часть 1: генерация функций
Серия пенальти была огромным испытанием во время чемпионата мира по футболу. Они вызвали много споров в социальных сетях и новостных агентствах. Даже финальный матч турнира решался по..

AST для разработчиков JavaScript
TL; DR Эта статья - мое выступление на недавно состоявшейся конференции Stockholm ReactJS Meetup. Вы можете посмотреть слайды здесь..

5 проектов на Python, которые нужно создать прямо сейчас!
Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

«Очень простой» эволюционный подход к обучению с подкреплением
В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

Фишинг — Упаковано и зашифровано
Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..