gpt4 book ai didi

c++ - std::string 到 float (通过 std::stof)精度

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:02 25 4
gpt4 key购买 nike

我正在尝试解决这个问题,市场数据以字符串形式返回货币值,该字符串在数字长度后 8 位。

money = "124.19000540"

我需要它是 124.19,知道如何实现吗?

std::stof(money) = 124.19000244

如何克服这个问题?

最佳答案

浮点类型不适合保存货币值。如果您满足于四舍五入到美分,并将钱存储为美分的整数(这是最简单的解决方案之一),您可以这样做:

long numCents = static_cast<long>(100 * std::stof(money))

这将进行“截断”舍入,它总是向下舍入。如果您想“四舍五入到最接近的美分”,请尝试:

long numCents = static_cast<long>(100 * std::stof(money) + 0.5)

正如其他人提到的,您可能想要使用定点或十进制库而不是这么简单的东西。

关于c++ - std::string 到 float (通过 std::stof)精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31416142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com