C언어,ARM

숫자 문자열에서 소수점이하 쓸모없는 0지우는 함수

안녕1999 2020. 9. 19. 23:26
소수점이하 0이라도, 필요한 경우도 있다.
예) 0.000001 => 0.00  //소수점이하가 모두 0이 아닌경우, 소수점이하 0을 모두 표시해준다.(경우에 따라서는 필요하다)

"1.0000000" => "1"
"1.5000000" => "1.5"
char *number_str_del_right_dot_zero(char *number)//소수점이 없는 경우0, 아니면, 마지막 숫자의 포인터 리턴
{
	char *p = number + strlen(number);
	p = strrchr(number, '.');//소숫점이 있는 경우
	if (p)
	{
		p = p + strlen(p)-1;
		while (p > number)
		{
			if (*p == '0')
			{
				*p = 0;
			}
			else if (*p == '.')
			{
				*p = 0;//소수점은 지우고 리턴
				break;
			}
			else
			{
				break;
			}
			p--;
		}
	}
	else
	{
		//소수점이 없다.
	}
	return p;
}