我想转换像#34; 12345678901234567890.123"加倍, 所以我使用sscanf(str,"%lf",& d), 我用printf打印它("%20.3lf",d);
但我得到的结果是" 12345678901234567178.000",
我该如何解决?
答案 0 :(得分:2)
你可能不能,因为你试图存储一个数字精度超过机器double
数据类型的数字。
您需要使用一个大号库,“手动”计算任意数量的数字,因此可以超出机器基本数据类型的限制。
哦,"12345678901234567890.123"
不是“char”,它被称为“字符串”。