Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Echo a very large number

Tags:

php

I have a unusual problem which I have no idea how to solve.

I have a JSON file, where a application id is stored, namely the following:

"app_id": "363924477024846"

I read my JSON file from the HDD and parse it with json_decode() to use it in my application. However, at one point, I want to have the app-id sent to the browser. The problem is, if I echo that variable out, its printed as following:

2.7110712626725E+14

Is there any way to prevent this? I don't need it to be threated as a number by PHP since I am not doing any calculations with it - a string would be fine. But since its represented by numbers only, it seems that json_decode() threats it as a number, even tough I put quotes around it (which should indicate a string) or maybe PHP just does stupid type hinting in this case, I don't know...

Any ideas on how to handle that?

like image 276
Christian Engel Avatar asked Sep 26 '12 19:09

Christian Engel


2 Answers

I had the same problem here: Simply use phps number_format function, which solves this issue:

$number = "363924477024846";
echo number_format($number, 0, '', '');

// 363924477024846
like image 195
sics Avatar answered Sep 18 '22 06:09

sics


It looks like json_decode has an option to treat big integers as strings.

json_decode($json, false, 512, JSON_BIGINT_AS_STRING)
like image 23
Mufaka Avatar answered Sep 18 '22 06:09

Mufaka