0

我正在尝试使用小数点作为分隔符在 C 程序中拆分实数,例如 1234.56 产生

(int) whole_num = 1234 (int) 分数 = 56

有什么想法我可以如何去做吗?自从我和 C 混在一起已经很久了,明白吗?:)

4

3 回答 3

4
void split( double num, int& whole_number, double& fraction) {
    fraction = modf(num, &whole_number);
}

这是有效的,因为 modf 采用双精度的整数部分并返回小数部分。

于 2009-06-03T13:28:48.887 回答
4

假设您要拆分字符串。

strtok_r和你最喜欢的字符串到数字函数,比如strtol

于 2009-06-03T13:30:05.000 回答
1

如果您正在处理一个实际的浮点数,而不是这样的字符串表示,您应该使用它modf来拆分整数和小数部分。

Perlsplit按正则表达式拆分,因此要复制完整功能,您需要一个正则表达式库。对于一般的字符串拆分,您可以使用strtok,但因为它会就地更改字符串,strtok_r(在同一页上描述)建议改为。

于 2009-06-03T13:30:10.990 回答