浅谈各种语言输出函数小数点 00 返回问题
浅谈各种语言输出函数
今天在群里 一个小伙伴问到如下的问题
PHP json_encode() 会去掉小数点为00 的后缀
<?php
$num = [
"a" => 20.00,
"b" => 39.78,
];
echo json_encode($num);
// {"a":20,"b":39.78}
可以看到 20.00 返回了 20 。然后我就试了下引发了如下的疑惑
我们拿 数字类型 举例例如:66.00,这个数值在各种语言上会输出什么结果
php
echo 66.00;
// 66
JavaScript
console.log(66.00);
// 66
Java
System.out.println(66.00);
// 66.0
Python
print(66.00)
// 66.0
C#
Console.WriteLine(66.00);
// 66
拿 PHP 来说,想让他输出 66.00,还真不好处理,我没有找到解决方案。
如果非要返回.00 ,可以有以下几种方案.但是这将会改变数据类型,变为字符串
$num = sprintf("%1\$.2f", 66.00);
var_dump($num);
// string(4) "66.00"
或者
$num = number_format(66.00,2,'.','');
var_dump($num);
// string(5) "66.00"
可以看到 返回的数据类型都转成 字符串了,这其实并不对。至于怎么还保持原数据类型,希望各位大佬能有解决方案。给小弟留言。
关于 json_encode 的问题,在 stackoverflow 找到了解决方案
<?php
$output = array('x' => 'y', 'price' => '30.00');
$json = json_encode($output);
$json = str_replace('"price":"'.$output['price'].'"', '"price":'.$output['price'].'', $json);
print $json;
// {"x":"y","price":30.00}
关于极客返利
极客返利 是由我个人开发的一款网课返利、返现平台。包含 极客时间返现、拉勾教育返现、掘金小册返现、GitChat返现。目前仅包含这几个平台。后续如果有需要可以考虑其他平台。 简而言之就是:你买课,我返现。让你花更少的钱,就可以买到课程。
版权许可
本作品采用 知识共享署名 4.0 国际许可协议 进行许可。转载无需与我联系,但须注明出处,注明文章来源 浅谈各种语言输出函数小数点 00 返回问题