浅谈各种语言输出函数小数点 00 返回问题

浅谈各种语言输出函数

今天在群里 一个小伙伴 [@科大大](https://learnku.com/users/11914) 问到如下的问题

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"

可以看到 返回的数据类型都转成 字符串了,这其实并不对。至于怎么还保持原数据类型,希望各位大佬能有解决方案。给小弟留言。

php
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!