예제 #1
0
파일: output.cpp 프로젝트: bbucior/mint
void Output::printPaddedSci(double message, int width, PrintAlign align, int prec)
{
	if (!_streams[_curStream].print())
		return;
	int order = (int)floor(log10(fabs(message)));
	int places = prec;
	if (places == -1)
	{
		double temp = message / pow(10.0, order);
		for (places = 0; places <= 8; places++)
		{
			if ((temp - roundToOne(temp) > -1e-9) && (temp - roundToOne(temp) < 1e-9))
				break;
			temp *= 10;
		}
	}
	streamsize origPrec = stream().precision();
	if (align == LEFT)
		stream() << resetiosflags(ios::right) << setiosflags(ios::left);
	stream() << setiosflags(ios::scientific) << setprecision(places);
	stream() << setw(width) << checkZero(message, abs(order) + places);
	stream() << resetiosflags(ios::scientific) << setprecision(origPrec) << flush;
	if (align == LEFT)
		stream() << resetiosflags(ios::left) << setiosflags(ios::right);
}
예제 #2
0
파일: sqrtString.c 프로젝트: liuyang1/test
char *sqrt_string(char *n) {
    char *nn = strdup(n);
    char *r = sqrt_string_in(reverse(skipZeros(nn)));
    r = checkZero(reverse(r));
    free(nn);
    return r;
}
예제 #3
0
void test_checkZero_given_value_is_0_should_set_zero_flag(void)
{
  int value = 0;
  STATUS = 0;
  checkZero(value);
  
  TEST_ASSERT_EQUAL(0x4, STATUS);
}
예제 #4
0
void test_checkZero_given_value_is_negative_value_should_unset_zero_flag(void)
{
  int value = -33;
  
  checkZero(value);
  
  TEST_ASSERT_EQUAL(0x0, STATUS);
}
예제 #5
0
void test_checkZero_given_value_is_positive_number_should_unset_zero_flag(void)
{
  int value = 12;

  checkZero(value);
  
  TEST_ASSERT_EQUAL(0x0, STATUS);
}
예제 #6
0
파일: output.cpp 프로젝트: bbucior/mint
void Output::print(const Vector3D& message, int prec, bool useComma)
{
	if (!_streams[_curStream].print())
		return;
	streamsize origPrec = stream().precision();
	for (int i = 0; i < 3; ++i)
	{
		stream() << setiosflags(ios::fixed) << setprecision(prec) << checkZero(message[i], prec);
		stream() << resetiosflags(ios::fixed) << setprecision(origPrec);
		if (i != 2)
		{
			if (useComma)
				stream() << ",";
			stream() << " ";
		}
	}
	stream() << flush;
}
예제 #7
0
파일: output.cpp 프로젝트: bbucior/mint
void Output::print(double message, int prec)
{
	if (!_streams[_curStream].print())
		return;
	int places = prec;
	if (places == -1)
	{
		double temp = message;
		for (places = 0; places <= 8; ++places)
		{
			if ((temp - roundToOne(temp) > -1e-9) && (temp - roundToOne(temp) < 1e-9))
				break;
			temp *= 10;
		}
	}
	streamsize origPrec = stream().precision();
	stream() << setiosflags(ios::fixed) << setprecision(places) << checkZero(message, places);
	stream() << resetiosflags(ios::fixed) << setprecision(origPrec) << flush;
}
예제 #8
0
파일: output.cpp 프로젝트: bbucior/mint
void Output::print(const List<double>& message, int prec, bool useComma, bool useAnd)
{
	if (!_streams[_curStream].print())
		return;
	streamsize origPrec = stream().precision();
	for (int i = 0; i < message.length(); ++i)
	{
		stream() << setiosflags(ios::fixed) << setprecision(prec) << checkZero(message[i], prec);
		stream() << resetiosflags(ios::fixed) << setprecision(origPrec);
		if (useComma)
		{
			if ((message.length() > 2) && (i != message.length() - 1))
				stream() << ",";
			if ((i == message.length() - 2) && (useAnd))
				stream() << " and";
		}
		if (i != message.length() - 1)
			stream() << " ";
	}
	stream() << flush;
}
예제 #9
0
파일: output.cpp 프로젝트: bbucior/mint
void Output::printPadded(double message, int width, PrintAlign align, int prec)
{
	if (!_streams[_curStream].print())
		return;
	int places = prec;
	if (places == -1)
	{
		double temp = message;
		for (places = 0; places <= 8; places++)
		{
			if ((temp - roundToOne(temp) > -1e-9) && (temp - roundToOne(temp) < 1e-9))
				break;
			temp *= 10;
		}
	}
	streamsize origPrec = stream().precision();
	if (align == LEFT)
		stream() << resetiosflags(ios::right) << setiosflags(ios::left);
	stream() << setiosflags(ios::fixed) << setprecision(places) << setw(width) << checkZero(message, places);
	stream() << resetiosflags(ios::fixed) << setprecision(origPrec) << flush;
	if (align == LEFT)
		stream() << resetiosflags(ios::left) << setiosflags(ios::right);
}
예제 #10
0
파일: output.cpp 프로젝트: bbucior/mint
void Output::addSci(double input, int prec)
{
	sprintf(_arg, "%s%d%s", "%.", prec, "e");
	sprintf(_buffer, _arg, checkZero(input, abs((int)floor(log10(fabs(input)))) + prec));
	add(_buffer);
}
예제 #11
0
파일: output.cpp 프로젝트: bbucior/mint
void Output::add(double input, int prec)
{
	sprintf(_arg, "%s%d%s", "%.", prec, "f");
	sprintf(_buffer, _arg, checkZero(input, prec));
	add(_buffer);
}