Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
November 30, 2008 2 param Problems | ||||
---|---|---|---|---|
| ||||
Hi I've learned the D language for a few days. I've worked in other languages before. But now I have following problems: First: import std.stdio; double add(double param[] ...) { double result = 0; foreach(double d; param) { result += d; } return result; } int main() { double zahl; zahl = add(2, 5.6, 7.8); writefln("%d", zahl); return 0; } ___________________________________________________________ Second: import std.stdio; import std.format; int main() { double zahl = add(1, 5.6, 41, "Hello"); writefln("%d", zahl); return 0; } double add(...) { double result = 0; for(int i=0; i < _arguments.length; i++) { if(_arguments[i] == typeid(double)) { double var = *cast(double*)_argptr; result += var; _argptr += double.sizeof; } else if(_arguments[i] == typeid(float)) { float var = *cast(float*)_argptr; result += var; _argptr += double.sizeof; } else if(_arguments[i] == typeid(int)) { int var = *cast(int*)_argptr; result += var; _argptr += int.sizeof; } else if(_arguments[i] == typeid(bool)) { _argptr += bool.sizeof; } else if(_arguments[i] == typeid(char[])) { char[] var = *cast(char[]*)_argptr; _argptr += var.sizeof; } } return result; } When I try to run this codes there is printed following message in the cmd: Error: std.format floating Please help me. I have no idea. Greetings Fabian Claßen |
November 30, 2008 Re: 2 param Problems | ||||
---|---|---|---|---|
| ||||
Posted in reply to Fabian Claßen | Fabian Claßen wrote: > double zahl = add(1, 5.6, 41, "Hello"); > writefln("%d", zahl); [...] > > When I try to run this codes there is printed following message in the cmd: > > Error: std.format floating > > Please help me. I have no idea. %d is for integral arguments, not floating point ones. Try %s. |
November 30, 2008 Re: 2 param Problems | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright Wrote:
> Fabian Claßen wrote:
> > double zahl = add(1, 5.6, 41, "Hello");
> > writefln("%d", zahl);
> [...]
> >
> > When I try to run this codes there is printed following message in the cmd:
> >
> > Error: std.format floating
> >
> > Please help me. I have no idea.
>
>
> %d is for integral arguments, not floating point ones. Try %s.
Thank you.
Now does the code works. :D
Amazing *lol
I love the D programming language
|
November 30, 2008 Re: 2 param Problems | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | On Sun, 30 Nov 2008 10:58:50 -0800, Walter Bright wrote: > Fabian Claßen wrote: >> double zahl = add(1, 5.6, 41, "Hello"); >> writefln("%d", zahl); > [...] >> >> When I try to run this codes there is printed following message in the cmd: >> >> Error: std.format floating >> >> Please help me. I have no idea. > > %d is for integral arguments, not floating point ones. Try %s. Also note that you would use '%f' or '%g' if you wanted to force runtime type checking on your arguments. The '%s' does not force typechecking as it converts whatever argument it is given to a string. You would also use "%f" if you needed finer formatting details, such as "%5.2f" etc ... -- Derek Parnell Melbourne, Australia skype: derek.j.parnell |
December 01, 2008 Re: 2 param Problems | ||||
---|---|---|---|---|
| ||||
Posted in reply to Derek Parnell | Derek Parnell Wrote:
> On Sun, 30 Nov 2008 10:58:50 -0800, Walter Bright wrote:
>
> > Fabian Claßen wrote:
> >> double zahl = add(1, 5.6, 41, "Hello");
> >> writefln("%d", zahl);
> > [...]
> >>
> >> When I try to run this codes there is printed following message in the cmd:
> >>
> >> Error: std.format floating
> >>
> >> Please help me. I have no idea.
> >
> > %d is for integral arguments, not floating point ones. Try %s.
>
> Also note that you would use '%f' or '%g' if you wanted to force runtime type checking on your arguments. The '%s' does not force typechecking as it converts whatever argument it is given to a string. You would also use "%f" if you needed finer formatting details, such as "%5.2f" etc ...
>
> --
> Derek Parnell
> Melbourne, Australia
> skype: derek.j.parnell
Hi
thanks for that information.
You are a big help.
;)
Greetings Fabian Claßen
|
Copyright © 1999-2021 by the D Language Foundation