开发者

Convert float to string in php?

开发者 https://www.devze.com 2023-03-24 01:29 出处:网络
Like: float(1.2345678901235E+19) => stri开发者_运维问答ng(20) "12345678901234567890"

Like:

float(1.2345678901235E+19) => stri开发者_运维问答ng(20) "12345678901234567890"

Can it be done?

(it's for json_decode...)


echo number_format($float,0,'.','');

note: this is for integers, increase 0 for extra fractional digits


$float = 0.123;
$string = sprintf("%.3f", $float); // $string = "0.123";


It turns out json_decode by default casts large integers as floats. This option can be overwritten in the function call:

$json_array = json_decode($json_string, , , 1);

I'm basing this only on the main documentation, so please test and let me know if it works.


A double precision floating point number can only contain around 15 significant digits. The best you could do is pad the extra digits out with zeroes.


I solved this issue by passing the argument JSON_BIGINT_AS_STRING for the options parameter.

json_decode($json, false, 512, JSON_BIGINT_AS_STRING)

See example #5 in the json_decode documentation


The only way to decode a float without losing precision is to go through the json and frame all the floats in quotation marks. By making strings of numbers.

PHP json_decode integers and floats to string

0

精彩评论

暂无评论...
验证码 换一张
取 消