Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
纯版本的'std.format.format!`?_D_Function Attributes - Fatal编程技术网

纯版本的'std.format.format!`?

纯版本的'std.format.format!`?,d,function-attributes,D,Function Attributes,我想在纯函数中将double转换成字符串。我不明白为什么这不是纯粹的: wstring fromNumber(double n) pure { import std.format; return std.format.format!("%s"w)(n); } 有没有一种方法可以以pure的方式实现此函数,而无需重新实现将double转换为base10字符串的逻辑?因此,它不纯粹的原因是转换依赖于全局信息,如区域设置(1,4vs1.4)以及CPU中的浮点舍入标志。D实现调用依赖于

我想在纯函数中将double转换成字符串。我不明白为什么这不是纯粹的:

wstring fromNumber(double n) pure {
    import std.format;
    return std.format.format!("%s"w)(n);
}

有没有一种方法可以以
pure
的方式实现此函数,而无需重新实现将double转换为base10字符串的逻辑?

因此,它不纯粹的原因是转换依赖于全局信息,如区域设置(
1,4
vs
1.4
)以及CPU中的浮点舍入标志。D实现调用依赖于这些的C函数。。所以我有点认为答案是有人将不得不重新实现逻辑,这是非常重要的,因为有很多原因