首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在YAML中输出整数浮点数?

问如何在YAML中输出整数浮点数?
EN

Stack Overflow用户
提问于 2019-05-09 20:04:42
回答 1查看 2.2K关注 0票数 1

我在用Symfony YAML component。如果我从数据库输出数据,数字会以字符串的形式出现,所以我使用filter_var将它们转换为适当的类型(整型或浮点型)。

但是,输出浮点数是整数,如7.0,输出的是!!float 7。在PHP中,7.0可以很好地解析为浮点数,它只在输出时更改它。

示例代码:

代码语言:javascript
复制
<?php
require 'vendor/autoload.php';
use Symfony\Component\Yaml\Yaml;

$yaml = 'test: { PHP: 7.0, MySQL: 5.5 }';
echo Yaml::dump(Yaml::parse($yaml));

输出:

代码语言:javascript
复制
test:
    PHP: !!float 7
    MySQL: 5.5

但我想:

代码语言:javascript
复制
test:
    PHP: 7.0
    MySQL: 5.5

有没有办法做到这一点?在选项中看不到任何内容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-09 22:00:13

不,没有办法影响浮点值的转储方式。来自Yaml组件的相应代码如下所示:

代码语言:javascript
复制
if (\is_float($value)) {
    $repr = (string) $value;
    if (is_infinite($value)) {
        $repr = str_ireplace('INF', '.Inf', $repr);
    } elseif (floor($value) == $value && $repr == $value) {
        // Preserve float data type since storing a whole number will result in integer value.
        $repr = '!!float '.$repr;
    }
} else {
    $repr = \is_string($value) ? "'$value'" : (string) $value;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56059044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档