我想在纯函数中将双精度值转换为字符串。我搞不懂为什么这不是纯粹的:
wstring fromNumber(double n) pure {
import std.format;
return std.format.format!("%s"w)(n);
}有没有一种方法可以在不重新实现将double转换为base10字符串的逻辑的情况下以pure的方式实现此函数?
发布于 2019-12-28 23:22:47
因此,它不是纯粹的原因是,转换依赖于全局信息,例如1,4和1.4中的区域设置和浮点舍入标志。D实现调用依赖于这些的C函数。因此,我认为答案是必须有人重新实现逻辑,这不是微不足道的,原因有很多。
https://stackoverflow.com/questions/59510126
复制相似问题