C++ 仅输出一个小数点后一位

C++ Only output one decimal place

本文关键字:一位 小数点 输出 C++ 一个      更新时间:2023-10-16

我有一个浮点数,我已将其设置为 4.5,但当我将其渲染到屏幕上时,它显示 4.500000。我尝试过谷歌搜索和搜索堆栈溢出,但所有答案都使用 printf() 或 std::cout,我不能使用,因为我不想将其输出到控制台。对不起,nooby问题,这是代码:

TextRenderer::render(*window, std::to_string(player->health) + " HP", sf::Vector2f(3, 0), 16, sf::Color(155, 0, 0));

编辑:文本渲染器.cpp

#include "TextRenderer.h"
#include <SFML/Graphics.hpp>
#include <string>
#include "Logger.h"
sf::Font TextRenderer::kavoon = sf::Font();
TextRenderer::TextRenderer()
{
}
TextRenderer::~TextRenderer()
{
}
bool TextRenderer::load() {
    if (!TextRenderer::kavoon.loadFromFile("data/fonts/kavoon.ttf"))
    {
        Logger::error("Couldn't load kavoon font.");
    }
    return true;
}
void TextRenderer::render(sf::RenderWindow& window, std::string string, sf::Vector2f position, int size, sf::Color color) {
    sf::Text text;
    text.setFont(TextRenderer::kavoon);
    text.setString(string);
    text.setPosition(position);
    text.setCharacterSize(size);
    text.setColor(color);
    window.draw(text);
}

您可以使用 ostringstream 来执行此操作。

ostringstream ss;
ss << player->health;
string health = ss.str();

然后

TextRenderer::render(*window, health + " HP", sf::Vector2f(3, 0), 16, sf::Color(155, 0, 0));