d节目,解析或字符串转换为加倍(d programming, parse or convert st

2019-09-23 01:47发布

容易,因为它是在其他语言中,我似乎无法找到在d编程语言的选择,我可以转换为字符串(如:“234.32”)为双/浮点/真实。

使用从std.c.stdio库ATOF只有当我使用一个常量字符串工作。 (例如: atof("234.32")工作,但atof(tokens[i]);其中标记是一个动态数组与字符串不工作)。

如何转换或解析字符串转换成真正的/双/漂浮在d-编程语言?

Answer 1:

简单。

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.这真是令人印象深刻!



Answer 2:

从几乎任何类型转换为大多数其他类型,使用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);


文章来源: d programming, parse or convert string to double