Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Miten saa lukuihin pilkun?

Jopoxi [07.04.2017 19:25:54]

#

Tarkoitan normaalisti piste on määritys C++ matemaattisessa kaaviossa onnistuuko pilkun muuntaminen "." laskentakaavioihin ja tulostaessa ruudulle muuttaen "," takaisin.

Yritin etsiä esimerkkiä kyseisestä asiasta netistä ja ohjeista mutten löytänyt ratkaisua siihen.

Miten mahtaa onnistua c++ kanssa ?

peran [07.04.2017 19:34:26]

#

Toimiiko googlaamaani systeemi ?

https://www.google.fi/?gfe_rd=cr&ei­=wr7nWO71FuTk8Ae2ioWYBg#q=change dot to comma c++

http://stackoverflow.com/questions/15220861/how-can-i-set-the-comma-to-be-a-decimal-point

Edit - Vai taidatkin haluata käyttää kaavoissakin pilkkua ?

Metabolix [07.04.2017 20:49:49]

#

Voit asettaa cin- ja cout-virroissa pilkun desimaalierottimeksi seuraavasti:

struct desimaalipilkku: std::numpunct<char> {
	char do_decimal_point() const { return ','; }
};
std::cout.imbue(std::locale(std::cout.getloc(), new desimaalipilkku));
std::cin.imbue(std::locale(std::cin.getloc(), new desimaalipilkku));

Seuraava koodi demonstroi tätä käytännössä:

#include <locale>
#include <iostream>
#include <iomanip>
#include <cmath>

struct desimaalipilkku: std::numpunct<char> {
	char do_decimal_point() const { return ','; }
};

int main() {
	std::cout.imbue(std::locale(std::cout.getloc(), new desimaalipilkku));
	std::cin.imbue(std::locale(std::cin.getloc(), new desimaalipilkku));

	double a = -1111.1111, b = 1234.5678, toleranssi = 0.00001, c;
	std::cout << std::setprecision(10);
	std::cout << "Paljonko on " << a << " + " << b << "?\n";
	std::cin >> c;
	if (std::abs((a+b) - c) <= toleranssi) {
		std::cout << "Jokseenkin oikein!\n";
	} else {
		std::cout << "Ei ole!\n";
		std::cout << "Oikea vastaus: " << (a+b) << "\n";
	}
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta