9

他の言語と同じくらい簡単ですが、文字列(例: "234.32")をdouble / float/realに変換できるdプログラミング言語のオプションを見つけることができないようです。

std.c.stdioライブラリのatofを使用すると、定数文字列を使用する場合にのみ機能します。(例:atof("234.32")機能しますがatof(tokens[i]);、tokensが文字列を含む動的配列である場合は機能しません)。

文字列をdプログラミング言語でreal/double / floatに変換または解析する方法は?

4

2 に答える 2

16

簡単。

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.convD変換のスイスアーミーナイフです。本当に感動です!

于 2012-09-26T15:58:52.187 に答える
8

ほとんどすべてのタイプからほとんどすべての他のタイプに変換するには、を使用します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);
于 2012-09-26T17:02:36.130 に答える