Я пытаюсь сделать эхо переменной, содержащей 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);