раунд в PHP показывает научную нотацию вместо полного числа

Я пытаюсь сделать эхо переменной, содержащей 1400000. Так что написано: echo round(1400000); это дает 1,4E + 6 вместо полного числа. У кого-нибудь есть идея о том, как его полностью отобразить?

    Кажется, что круг был проблемой. Я изменил его с помощью number_format() и это отлично работает. Спасибо Арону и Павлу за ответы.

    Что касается вашего вопроса, я также наткнулся на этот комментарий на веб-сайте PHP.

    PHP переключается со стандартной десятичной нотации на экспоненциальную нотацию для определенных «специальных» поплавков. Вы можете увидеть частичный список таких «специальных» значений с помощью этого:

     for( $tmp = 0, $i = 0; $i < 100; $i++ ) { $tmp += 100000; echo round($tmp),"\n"; } 

    Таким образом, если вы добавите два поплавка, получите «специальное» значение, например, 1.2E + 6, а затем внесите это значение без изменений в запрос обновления для хранения значения в десятичном столбце, скажем, вы, скорее всего, получите неудачную транзакцию , так как база данных увидит «1.2E + 6» как данные varchar, а не десятичную. Аналогично, вы, скорее всего, получите ошибку проверки XSD, если вы поместите значение в xml.

    Я должен быть честным: это одна из самых странных вещей, которые я видел на любом языке за 20 лет кодирования, и это колоссальная боль, чтобы обойти.

    Кажется, что еще не было «реального» исправления, но, судя по комментариям в отчете об ошибке, написанном Паулем Диксоном ранее, его решение, похоже, работает.

    Возможно, это связано с этим сообщением об ошибке , поэтому вы можете попробовать

     printf("%d", $myvar);