我想在纯函数中将双精度型转换为字符串。我对为什么这不是纯粹的感到困惑:
wstring fromNumber(double n) pure {
import std.format;
return std.format.format!("%s"w)(n);
}
有没有一种方法可以以pure
的方式实现此功能,而不必重新实现将double转换为base10字符串的逻辑?
所以它不纯净的原因是转换取决于全局信息,例如语言环境(例如1,4
与1.4
)和CPU中的浮点舍入标志。 D的实现调用了一个依赖于这些的C函数..所以我有点想答案是有人必须重新实现逻辑,由于很多原因,这并不平凡。