简体   繁体   中英

Convert float to string in php?

Like:

float(1.2345678901235E+19) => string(20) "12345678901234567890"

Can it be done?

(it's for json_decode...)

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

注意:这是整数,额外的小数数字增加 0

$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.

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM