BigInt.toString

H. S. Teoh hsteoh at qfbox.info
Thu Aug 4 01:05:31 UTC 2022


On Thu, Aug 04, 2022 at 12:45:44AM +0000, Ruby The Roobster via Digitalmars-d-learn wrote:
> How exactly can one store the string representation of a BigInt?  The
> seemingly obvious
> 
> ```d
> //...
> dchar[] ret; //dchar[] is necessary for my project
> //Assume that val is a BigInt with a value set earlier:
> val.toString(ret, "%d");
> //...
> ```
> 
> doesn't work.  I am using x86_64 windows with -m64, and v2.100.1(LDC2
> 1.30.0).

Don't call .toString directly. Instead, use std.format.format:

```d
import std;
void main() {
	auto x = BigInt("123123123123123123123123123123123123");
	string s = format("%s", x); // this gives you the string representation
	writeln(s); // prints "123123123123123123123123123123123123"

	// If you need to convert to dchar[]:
	dstring ds = s.to!(dchar[]);

	// Or if you want a direct formatting into dchar[] without going
	// through a string intermediate:
	auto app = appender!(dchar[]);
	app.formattedWrite("%s", x");
	dchar[] dcharArray = app.data; // now you have your dchar[]
}
```

Hope this is clear.


T

-- 
Which is worse: ignorance or apathy? Who knows? Who cares? -- Erich Schubert


More information about the Digitalmars-d-learn mailing list