前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈各种语言输出函数小数点 00 返回问题

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

作者头像
hedeqiang
发布2019-12-17 20:34:58
5280
发布2019-12-17 20:34:58
举报
文章被收录于专栏:LaravelCodeLaravelCode

浅谈各种语言输出函数

今天在群里 一个小伙伴问到如下的问题

PHP json_encode() 会去掉小数点为00 的后缀

代码语言:javascript
复制
<?php

$num = [
    "a" => 20.00,
    "b" => 39.78,
];
echo json_encode($num);
// {"a":20,"b":39.78}

可以看到 20.00 返回了 20 。然后我就试了下引发了如下的疑惑

我们拿 数字类型 举例例如:66.00,这个数值在各种语言上会输出什么结果

php
代码语言:javascript
复制
echo 66.00;
// 66
JavaScript
代码语言:javascript
复制
console.log(66.00);
// 66
Java
代码语言:javascript
复制
System.out.println(66.00);
// 66.0
Python
代码语言:javascript
复制
print(66.00)
// 66.0
C#
代码语言:javascript
复制
Console.WriteLine(66.00);
// 66

拿 PHP 来说,想让他输出 66.00,还真不好处理,我没有找到解决方案。

如果非要返回.00 ,可以有以下几种方案.但是这将会改变数据类型,变为字符串

代码语言:javascript
复制
$num = sprintf("%1\$.2f", 66.00);
var_dump($num);
// string(4) "66.00"

或者

代码语言:javascript
复制
$num = number_format(66.00,2,'.','');
var_dump($num);
// string(5) "66.00"

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

关于 json_encode 的问题,在 stackoverflow 找到了解决方案

代码语言:javascript
复制
<?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}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • php
  • JavaScript
  • Java
  • Python
  • C#
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档