Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/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
String d编程,解析或转换字符串为双精度_String_Double_D_Typeconverter_Dmd - Fatal编程技术网

String d编程,解析或转换字符串为双精度

String d编程,解析或转换字符串为双精度,string,double,d,typeconverter,dmd,String,Double,D,Typeconverter,Dmd,与其他语言一样简单,我似乎在d编程语言中找不到一个可以将字符串(例如:“234.32”)转换为double/float/real的选项 使用std.c.stdio库中的atof仅在使用常量字符串时有效。(例如:atof(“234.32”)起作用,但atof(令牌[i]);其中令牌是一个带有字符串的动态数组,不起作用) 如何在d编程语言中将字符串转换或解析为实/双/浮点?简单 import std.conv; import std.stdio; void main() { flo

与其他语言一样简单,我似乎在d编程语言中找不到一个可以将字符串(例如:“234.32”)转换为double/float/real的选项

使用std.c.stdio库中的atof仅在使用常量字符串时有效。(例如:
atof(“234.32”)
起作用,但
atof(令牌[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区的转换之刀。它真的令人印象深刻

要从大多数任何类型转换为大多数其他类型,请使用。e、 g

另一方面,如果希望从字符串中解析多个空格分隔的值(在执行时从字符串中删除这些值),则使用。e、 g


是的,“to”真是太棒了
auto d = to!double("234.32");
auto str = to!string(234.32);
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);