容易,因为它是在其他语言中,我似乎无法找到在d编程语言的选择,我可以转换为字符串(如:“234.32”)为双/浮点/真实。
使用从std.c.stdio库ATOF只有当我使用一个常量字符串工作。 (例如: atof("234.32")
工作,但atof(tokens[i]);
其中标记是一个动态数组与字符串不工作)。
如何转换或解析字符串转换成真正的/双/漂浮在d-编程语言?
容易,因为它是在其他语言中,我似乎无法找到在d编程语言的选择,我可以转换为字符串(如:“234.32”)为双/浮点/真实。
使用从std.c.stdio库ATOF只有当我使用一个常量字符串工作。 (例如: atof("234.32")
工作,但atof(tokens[i]);
其中标记是一个动态数组与字符串不工作)。
如何转换或解析字符串转换成真正的/双/漂浮在d-编程语言?
简单。
import std.conv;
import std.stdio;
void main() {
float x = to!float("234.32");
double y = to!double("234.32");
writefln("And the float is: %f\nHey, we also got a double: %f", x, y);
}
std.conv
是转换的瑞士军刀在D.这真是令人印象深刻!
从几乎任何类型转换为大多数其他类型,使用std.conv.to
。 例如
auto d = to!double("234.32");
要么
auto str = to!string(234.32);
在另一方面,如果你正在寻找从字符串(从字符串去除值,当您去)解析几个空格分隔值,然后使用std.conv.parse
。 例如
auto str = "123 456.7 false";
auto i = parse!int(str);
str = str.stripLeft();
auto d = parse!double(str);
str = str.stripLeft();
auto b = parse!bool(str);
assert(i == 123);
assert(d == 456.7);
assert(b == false);