就像它在其他語言一樣簡單,我似乎無法在d編程語言中找到一個選項,我可以將字符串(例如:「234.32」)轉換爲雙/浮點/真實。d編程,解析或轉換字符串加倍
使用來自std.c.stdio庫的atof只適用於我使用常量字符串。 (例如:atof("234.32")
工作,但atof(tokens[i]);
其中令牌是一個動態數組與字符串不起作用)。
如何在d編程語言中將字符串轉換或解析爲真/雙/浮點數?
就像它在其他語言一樣簡單,我似乎無法在d編程語言中找到一個選項,我可以將字符串(例如:「234.32」)轉換爲雙/浮點/真實。d編程,解析或轉換字符串加倍
使用來自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);
是的,'到'是怪胎'真棒! :) – Trass3r