digitalmars.D - 2 param Problems
- =?ISO-8859-1?Q?Fabian_Cla=dfen?= (57/57) Nov 30 2008 Hi
- Walter Bright (3/11) Nov 30 2008 %d is for integral arguments, not floating point ones. Try %s.
- =?ISO-8859-1?Q?Fabian_Cla=dfen?= (5/18) Nov 30 2008 Thank you.
- Derek Parnell (9/21) Nov 30 2008 Also note that you would use '%f' or '%g' if you wanted to force runtime
- =?ISO-8859-1?Q?Fabian_Cla=dfen?= (6/30) Dec 01 2008 Hi
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
Nov 30 2008
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.
Nov 30 2008
Walter Bright Wrote:Fabian Claßen wrote:Thank you. Now does the code works. :D Amazing *lol I love the D programming languagedouble 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.
Nov 30 2008
On Sun, 30 Nov 2008 10:58:50 -0800, Walter Bright wrote:Fabian Claßen wrote: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.parnelldouble 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.
Nov 30 2008
Derek Parnell Wrote:On Sun, 30 Nov 2008 10:58:50 -0800, Walter Bright wrote:Hi thanks for that information. You are a big help. ;) Greetings Fabian ClaßenFabian Claßen wrote: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.parnelldouble 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.
Dec 01 2008